Есть ли способ получить доступ к файлам, которые Rails уменьшил и сжал извне?

#javascript #ruby-on-rails #ruby-on-rails-4

Вопрос:

Я знаю, что конвейер ресурсов Rails при обычных обстоятельствах будет сокращать и сжимать все файлы JS в один, делая их меньше/запутанными, но недоступными непосредственно с другого сайта. Я также знаю, что папка /public содержит файлы, которые обходят этот процесс, и к ним можно получить прямой доступ по URL-адресу.

Мой вопрос в том, есть ли в Rails способ объединить эти процессы? Могу ли я уменьшить/сжать файл с помощью моих драгоценных камней Ruby on Rails, чтобы он по-прежнему был доступен по статическому URL-адресу? Я знаю, что могу поместить файлы JS в приложение/ресурсы, чтобы они прошли через конвейер, но если я это сделаю, будут ли они доступны извне?

Комментарии:

1. Какую версию Rails вы используете?

2. рельсы (4.2.11.3)

3. Rails компилирует ресурсы и запускает их /public/assets в производство, поэтому скомпилированные и уменьшенные файлы должны быть доступны. Следует отметить, что rails добавит исправление отпечатков пальцев к именам файлов для улучшения кэширования, возможно, вам потребуется отключить, если вы хотите получить доступ к файлам по оригинальным именам.

4. /общая папка не обходит процесс. Все общедоступные файлы оказываются в этой папке. В то время как вы поместили их вручную с их оригинальным именем (favico.ico или что-то в этом роде) или они были уменьшены и сняты отпечатки пальцев. Когда вы обращаетесь к ним через помощника Rails, например lt;%= image_tag "my-good-image.jpg" %gt; , Rails найдет эквивалент отпечатков пальцев в общей папке. Вы можете предварительно скомпилировать все свои статические ресурсы локально, и вы увидите, что они будут отпечатаны в общей папке.

5. Чтобы действительно ответить на ваш вопрос, вы можете увидеть путь доступа в рабочей среде. Я только что проверил одно из своих отпечатков пальцев на рабочем изображении, и путь такой my-website.com/assets/my-super-cool-image-tyhgdlijsdlfijsklethfj-whatever-here-klihkugh.jpg (Rails 5.2), и я также поместил файл с именем favicon.ico в общую папку (не общедоступную/активы), и он доступен по адресу my-website.com/favicon.ico