Я добавил webpacker в свой проект rails 5, чтобы использовать несколько узловых модулей, которые необходимы для некоторых функций. У меня не было проблем с настройкой и локальным запуском, но при развертывании в производство (я использую Amazon Elastic Beanstalk) javascript_pack_tag указывает на неправильное местоположение. Например, при этом тестовом развертывании (http://production -test.us-west-2.elasticbeanstalk.com ) URL-адрес, сгенерированный тегом, будет (http://production -test.us- west-2.elasticbeanstalk.com/packs/process_landsat-18191562216c726dbe6a.js) когда это должно быть (http://production -test.us-west-2.elasticbeanstalk.com / public / packs / process_landsat-18191562216c726dbe6a .js ).
Я пытался изменить путь к общедоступному выходу в webpacker.yml, но он никогда не просматривается в общедоступной папке, несмотря на любые изменения, которые я делаю. Остальная часть URL обновляется правильно, хотя. Учитывая это, я подумал, что проблема может быть связана с конфигурацией nginx. Итак, я начал изменять его, но все еще не смог исправить проблему. Я уверен, что это не слишком сложно, но я не могу понять это. У кого-нибудь есть идеи?
Мои текущие настройки webpacker.yml и настройки nginx приведены ниже.
webpacker.yml
default: &default
source_path: app/javascript
source_entry_path: packs
public_output_path: packs
cache_path: tmp/cache/webpacker
resolved_paths: []
cache_manifest: false
extensions:
- .js
- .sass
- .scss
- .css
- .module.sass
- .module.scss
- .module.css
- .png
- .svg
- .gif
- .jpeg
- .jpg
development:
<<: *default
compile: true
dev_server:
https: false
host: localhost
port: 3035
public: localhost:3035
hmr: false
# Inline should be set to true if using HMR
inline: true
overlay: true
compress: true
disable_host_check: true
use_local_ip: false
quiet: false
headers:
'Access-Control-Allow-Origin': '*'
watch_options:
ignored: /node_modules/
test:
<<: *default
compile: true
public_output_path: packs-test
production:
<<: *default
compile: false
public_output_path: packs
dist_dir: packs
dist_path: public/packs
cache_manifest: true
nginx_proxy.config
files:
"/etc/nginx/conf.d/websockets.conf" :
content: |
server {
location /packs/ {
root /var/app/current/public;
}
}
container_commands:
01restart_nginx:
command: "service nginx restart"
Я также пробовал эту конфигурацию для nginx, но столкнулся с той же проблемой.
files:
"/etc/nginx/conf.d/websockets.conf" :
content: |
server {
root /var/app/current/public/;
location ^~ /packs/ {
gzip_static on;
expires max;
}
}
container_commands:
01restart_nginx:
command: "service nginx restart"