2011-05-24 28 views
0

我有一個通常的Apache,Passenger和Rails堆棧的EC2實例。該應用程序正在生產中運行,因此Javascript文件被緩存到all.js文件中。爲什麼Rails有時會使用錯誤的權限創建一個資產緩存?

Passenger配置爲使用PassengerPreStart指令預啓動應用程序實例。

有時,由Rails在public/javascripts中創建的all.js對於部署用戶具有錯誤的權限0600。它應該是0640,以便Apache可以提供這些文件(它們在同一個組中,www-data)。

你有任何解釋爲什麼會發生這種情況嗎? PassengerPreStart和Rails的資產緩存是否有任何問題?

回答

0

我很確定這是因爲資產之後的時間戳。如果你查看資源/文件後的數字是一個時間戳,並且我認爲瀏覽器會感到困惑,或者導軌將它弄糊塗或者其他東西。

您將時間戳的默認值更改爲空字符串,但將以下代碼放置在Rails應用程序的某處。

/application.rb

ENV[RAILS_ASSET_ID] = "" 

這將其設置爲空字符串。看看這是怎麼回事。

+0

我不確定我明白你在暗示什麼。資產緩存在部署時由「PassengerPreStart」創建,而不是由查看該站點的用戶創建。這裏沒有涉及瀏覽器。 – awendt 2011-05-24 09:58:55

相關問題