我有一个EC2实例,其中包含Apache,Passenger和Rails的常规堆栈。该应用程序正在生产中运行,因此Javascript文件将缓存到all.js
文件中。
Passenger配置为使用PassengerPreStart指令预先启动应用程序实例。
有时,all.js
中由Rails创建的public/javascripts
对部署用户具有错误的权限0600
。它应该是0640
,以便Apache可以提供文件(它们位于同一组,www-data)。
你有没有解释为什么会这样?是否存在PassengerPreStart
和Rails的资产缓存问题?
答案 0 :(得分:0)
我很确定这是因为资产之后的时间戳。如果你查看资源/文件之后的数字是一个时间戳,我认为浏览器会混淆,或者铁路混乱或其他东西。
您将时间戳的默认值更改为空字符串,但将以下代码放在Rails应用程序中的某处。
/application.rb
ENV[RAILS_ASSET_ID] = ""
这会将其设置为空字符串。看看情况如何。