#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