kan*_*iho 5 ruby-on-rails webpack amazon-elastic-beanstalk ruby-on-rails-5
我正在使用 Rails5 应用程序并将其成功部署到 EB 容器。
但是 webpacked assets --public/packs
直接服务,在生产环境中返回 404。
在当前情况下,我设置RAILS_SKIP_ASSET_COMPILATION = false
了每次部署应用程序之前预编译资产。
我曾经使用heroku作为生产环境,当时一切正常。
这是我的config/webpacker.yml
:
source_path: app/frontend/javascripts
source_entry_path: packs
public_output_path: packs # public/packs/filename-[hash].js
cache_path: tmp/cache/webpacker
# Additional paths webpack should lookup modules
# ['app/assets', 'engine/foo/app/assets']
resolved_paths: []
# Reload manifest.json on all requests so we reload latest compiled packs
cache_manifest: false
extensions:
- .js
- .sass
- .scss
- .css
- .png
- .svg
- .gif
- .jpeg
- .jpg
Run Code Online (Sandbox Code Playgroud)
我试图将 public_output_path 从包更改为资产。但同样的错误仍然存在......
我也遇到了这个问题。我不确定你使用的是 Nginx 还是 Passenger。但如果是 Nginx,您可能需要添加一个位置块,/etc/nginx/conf.d/webapp_healthd.conf
如下所示:
location /packs {
alias /var/app/current/public/packs;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
}
Run Code Online (Sandbox Code Playgroud)
然后跑sudo /etc/init.d/nginx restart
。
这应该足以让它工作。但您需要.ebextensions/
在项目中使用这些自定义设置创建一个文件,以便它不会被 Elastic Beanstalk 默认配置覆盖。
请参阅Maria Luisa Carrion D. 的这篇文章,了解如何自动化 nginx 配置。
归档时间: |
|
查看次数: |
525 次 |
最近记录: |