gpt4 book ai didi

ruby-on-rails - 如何在 Elastic Beanstalk 容器中提供 Rails 应用程序的 webpack Assets ?

转载 作者:行者123 更新时间:2023-12-04 05:38:49 24 4
gpt4 key购买 nike

我正在使用 Rails5 应用程序并将其成功部署到 EB 容器。

但是 webpacked assets -- 服务于 public/packs直接,在生产环境返回404。

在目前的情况下,我设置了 RAILS_SKIP_ASSET_COMPILATION = false所以我每次都在部署应用程序之前预编译 Assets 。

我曾经使用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

我试过的...

我试图将 public_output_path 从包更改为 Assets 。但同样的错误仍然存​​在......

最佳答案

我也遇到了这个问题。我不确定您使用的是 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;
}

然后运行 ​​ sudo /etc/init.d/nginx restart .

这应该足以让它工作。但是你会想要创建一个 .ebextensions/使用这些自定义设置在您的项目中创建文件,这样它就不会被 Elastic Beanstalk 默认配置覆盖。

this post由 Maria Luisa Carrion D. 撰写,了解如何自动化 nginx 配置。

关于ruby-on-rails - 如何在 Elastic Beanstalk 容器中提供 Rails 应用程序的 webpack Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49096067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com