Webpacker javascript_pack_tag указывает на неправильное местоположение в производстве (rails 5 / AWS эластичный бобовый стебель) - PullRequest
0 голосов
/ 30 октября 2018

Я добавил 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"
...