Как мне настроить подключаемый модуль, чтобы сделать другой каталог общедоступным, кроме priv/static/?

В настоящее время я использую aurelia в качестве внешней среды для своего приложения phoenix. Я хотел бы обозначить папку jspm_packages в корне моего проекта как статический каталог в дополнение к папке priv/static. Есть ли способ настроить плагин для этого?


person Korbin    schedule 19.08.2015    source источник


Ответы (1)


Короткий ответ: вы не должны.

Длинный ответ таков: в производственной среде приложения Elixir заботятся о двух каталогах: 1. ebin (куда вы помещаете скомпилированный код) и 2. priv (вспомогательные файлы, необходимые для запуска вашего программного обеспечения в производственной среде, например, статические файлы). Если вы полагаетесь на файл, который не находится ни в одном из этих каталогов, что-то может сломаться при запуске в рабочей среде или сборке выпусков. Поэтому я бы посоветовал вам переместить материалы aurelia внутрь priv/static или использовать инструмент, который компилирует артефакты aurelia в priv/static в конце дня.

Если вы не хотите этого делать, альтернатива «Я вас предупредил» находится здесь: http://hexdocs.pm/plug/Plug.Static.html. Вы можете установить from: "." при настройке Plug.Static в конечной точке Phoenix по адресу lib/my_app/endpoint.ex. Вы также можете подключить более одного Plug.Static, если хотите.

person José Valim    schedule 19.08.2015
comment
@Korbin Установка символической ссылки корневого каталога aurelia на priv / static - это поможет? - person Lenin Raj Rajasekaran; 23.08.2015
comment
Думаю, я последую совету Хосе и не изменю его. Я просто указываю пакеты jspm на каталог внутри папки priv/static. - person Korbin; 29.09.2015
comment
Для тех, кто хотел добавить еще один репозиторий к статическим, мне помогло использование CopyWebpackPlugin в моей конфигурации веб-пакета, чтобы убедиться, что в конце он переходит к priv/static: new CopyWebpackPlugin([{ from: 'path_to_repository', to: '..' }]) - person Augustin Riedinger; 14.05.2020