带有Rails的AWS Elastic Beanstalk,未加载已编译的资产

时间:2018-03-19 03:14:56

标签: ruby-on-rails amazon-web-services nginx amazon-elastic-beanstalk

在部署到弹性beanstalk时,我的所有资产都出现了400个错误。

Rails v 4.2

我正在考虑应用符号链接或创建副本ebextension,但我真的不应该这样做。

EB使用nginx,我确认nginx正在提供公共/资产和公共目录。

我可以将文件移动到公共/资源,它不会再出错。

此外,应用程序没有直接在ec2实例上运行的问题。

我注意到浏览器在渲染页面时没有尝试加载我的资产的编译版本(例如:application-03f1fea523795448f85cf1cf62e62e6f.css)。它尝试加载不在public / assets目录中的未编译文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。只是想分享我的想法。

在EB环境属性中的RACK_ENV=developmentRAILS_SKIP_ASSET_COMPILATION=false时,它对应于Rails应用程序中config/environments/development.rb的配置文件。

看起来当我从浏览器访问应用程序时,它会预编译资产两次(EB预编译脚本,以及运行时资产编译),因此资产哈希手指将不匹配。结果,404资产错误。