【问题标题】:Why does Rails sometimes create an asset cache with the wrong permissions?为什么 Rails 有时会创建具有错误权限的资产缓存?
【发布时间】:2011-05-24 08:56:06
【问题描述】:

我有一个 EC2 实例,其中包含通常的 Apache、Passenger 和 Rails 堆栈。该应用正在生产中运行,因此 Javascript 文件被缓存到 all.js 文件中。

Passenger 配置为使用 PassengerPreStart 指令预启动应用程序实例。

有时,Rails 在public/javascripts 中创建的all.js 具有错误的权限,部署用户0600。它应该是0640,以便 Apache 可以提供文件(它们在同一个组中,www-data)。

您对为什么会发生这种情况有任何解释吗? PassengerPreStart 和 Rails 的资产缓存是否存在任何已知问题?

【问题讨论】:

    标签: ruby-on-rails apache permissions passenger assets


    【解决方案1】:

    我很确定这是因为资产之后的时间戳。如果您查看源代码,资产/文件之后的数字是时间戳,我认为浏览器会感到困惑,或者 rails 会弄乱它或其他东西。

    您将时间戳的默认值更改为空字符串,但将以下代码放在 Rails 应用程序的某个位置。

    /application.rb

    ENV[RAILS_ASSET_ID] = ""
    

    这会将其设置为空字符串。看看情况如何。

    【讨论】:

    • 我不确定我是否理解您的建议。资产缓存由PassengerPreStart 在部署时创建,而不是由查看站点的用户创建。不涉及浏览器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 2017-07-16
    相关资源
    最近更新 更多