#javascript #ruby-on-rails #webpacker
#javascript #ruby-on-rails #webpacker
Вопрос:
Я знаю, что подобные вопросы задавались тысячу раз раньше, но я теряюсь в ссылках на ECMAScript, и большинство ответов предназначены для включения в HTML-файл, а Webpacker может создать некоторые трудности.
У меня есть около 50 ссылок на карты и другие источники, которые я использую в нескольких файлах JavaScript.
Использование webpacker, поэтому мой файл JavaScript app/packs/webpacker/olLocationShowMap.js
(я отклоняюсь от текущего соглашения, называя папку webpacker вместо javascript.)
В настоящее olLocationShowMap.js
время содержит несколько сотен строк определений для переменных, которые я хотел бы использовать в другом файле JavaScript, который используется на другой странице в другой модели. Мой подход заключался бы в создании файла с именем app/packs/webpacker/mapVars.js
и включении его в два других файла JavaScript.
Справочная информация: скрипт вызывается из .html.erb с помощью <%= javascript_pack_tag 'olLocationShowMap' %>
Как это делается? Я попробовал erb, но вышеприведенная строка завершается ошибкой, если файл назван olLocationShowMap.js.erb
Некоторая общая информация:
var osmLink = '<a href="https://openstreetmap.org">OpenStreetMap</a>',
esriLink = '<a href="https://www.esri.com/">ESRI</a>',
mbLink = '<a href="https://mabbox.com/">OpenStreetMap</a>',
<more of these>
// / URLs for the servers
var osmUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
esriUrl =
'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServe
r/tile/{z}/{y}/{x}',
<more of these>
Комментарии:
1. Webpacker по умолчанию не поддерживает
.erb
файлы. Вам необходимо включить интеграцию github.com/rails/webpacker/blob/master/docs/integrations.md#erb .2. @max Я выполнил две рекомендуемые вещи (и я просто повторил команду и проверил
webpacker.yml
файл, но вызов из show.html.erb завершается с ошибкой.http://localhost:3000/locations/164 500 (Internal Server Error)
иWebpacker can't find olLocationMap.js.erb
. Я попытался изменить вызов на<%= javascript_pack_tag 'olLocationMap.js.erb' %>