簡體   English   中英

Rails 3.1資產預編譯

[英]Rails 3.1 assets precompilation

我正在開發Rails 3應用程序,並試圖將其部署在生產環境中。 我正在使用capistrano部署我的應用程序,並將其配置為在update_code任務之后預編譯資產。

問題是,當我部署應用程序時,一切正常。 通過跟蹤服務器生產日志,我可以看到:

Compiled application.js  (6ms)  (pid 7552)
Compiled jquery.js  (4ms)  (pid 7552)
Compiled jquery_ujs.js  (0ms)  (pid 7552)
Compiled home.js  (94ms)  (pid 7552)
Compiled libs/dd_belatedpng.js  (0ms)  (pid 7552)
Compiled libs/modernizr-1.7.min.js  (0ms)  (pid 7552)
Compiled plugins.js  (0ms)  (pid 7552)
Compiled script.js  (0ms)  (pid 7552)
Compiled user_sessions.js  (93ms)  (pid 7552)
Compiled users.js  (92ms)  (pid 7552)
Compiled application.css  (3ms)  (pid 7552)
Compiled handheld.css  (0ms)  (pid 7552)
Compiled home.css  (55ms)  (pid 7552)
Compiled style.css  (0ms)  (pid 7552)
Compiled user_sessions.css  (1ms)  (pid 7552) 
Compiled users.css  (0ms)  (pid 7552)
Compiled application.js  (6ms)  (pid 7541)
Compiled jquery.js  (4ms)  (pid 7541)
Compiled jquery_ujs.js  (0ms)  (pid 7541)
Compiled home.js  (95ms)  (pid 7541)
Compiled libs/dd_belatedpng.js  (0ms)  (pid 7541)
Compiled libs/modernizr-1.7.min.js  (0ms)  (pid 7541)
Compiled plugins.js  (0ms)  (pid 7541)
Compiled script.js  (0ms)  (pid 7541)
Compiled user_sessions.js  (93ms)  (pid 7541)
Compiled users.js  (94ms)  (pid 7541)
Compiled application.css  (2ms)  (pid 7541)
Compiled handheld.css  (0ms)  (pid 7541)
Compiled home.css  (1ms)  (pid 7541)
Compiled style.css  (0ms)  (pid 7541)
Compiled user_sessions.css  (0ms)  (pid 7541)
Compiled users.css  (0ms)  (pid 7541)

但是,如果嘗試在瀏覽器中顯示主頁,則會得到以下信息:

ActionView::Template::Error (style.css isn't precompiled):
    14: 
    15:     %link{:rel => "shortcut icon", :href => "/favicon.ico" }
    16:     %link{:rel => "apple-touch-icon", :href => "/apple-touch-icon.png"}
    17:     = stylesheet_link_tag    "style"
    18:     = javascript_include_tag "libs/modernizr-1.7.min"
    19:     = javascript_include_tag "application"
    20: 
  app/views/layouts/application.html.haml:17:in         `_app_views_layouts_application_html_haml__1713356285_69878424198520'

我只是不明白服務器如何告訴我資產已編譯,而在它告訴我實際上文件沒有被編譯之后。

有人遇到過這種問題嗎?

謝謝你的幫助。

一種解決方案是告訴生產環境不要檢查config/environments/production.rb中的預編譯內容,並設置以下行:

config.assets.compile = false

config.assets.compile = true

重新啟動服務器,然后你應該檢查哪里HALM正在尋找style.css這應該是assets/style.css


更新

這是另一個選擇

告訴您的config/environments/production.rb完全編譯該文件,以確保它正在被編譯。

config.assets.precompile += %w( style.css )

https://stackoverflow.com/a/7541958/295228上看到了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM