簡體   English   中英

Heroku在部署時不會預編譯資產

[英]Heroku does not precompile assets when deploying

它在文檔中非常明確地說如果我不在本地預編譯它就會這樣做。

說實話,我沒興趣在本地預編譯這些。

我在production.rb中有什么,我在application.rb中重復了一遍

在我的production.rb中

config.serve_static_assets = false
config.assets.compile = false

config.assets.precompile << 'application.js'
config.assets.precompile << 'application.css'
config.assets.precompile << 'screen.css'

然后我部署,然后返回:

-----> Compiled slug size: 52.4MB
-----> Launching... done, v28
       http://myapp.herokuapp.com deployed to Heroku

所以它“編譯”了一些東西,對嗎? 除了沒有,我去網站,.css和.js文件是空白的。

為了在本地預編譯,我需要在bootstraps_and_overrides.css中注釋掉該行:

@import "screen.css.scss"; 

然后它在本地預編譯,我的本地機器將無法正確加載css,但遠程它將實際正常工作。

所以我現在的部署方法是注釋掉那行代碼,

bundle exec rake assets:precompile
git add .
git commit -m "Adding public/assets"
git push heroku development:master

然后( 不幸的是! ):

bundle exec rake assets:clean

然后在我的.css中取消注釋該行代碼。

有些事要檢查

  1. 你在雪松,對吧? Heroku僅在Cedar上支持此行為。
  2. 你在Rails 3上,對吧? Heroku不支持在Rails 4上預編譯資產。
  3. 你打開了資產管道,對嗎? config/application.rb您需要行config.assets.enabled = true
  4. 您必須沒有public/assets文件夾。 在部署時,Heroku根據此文件夾是否存在(即使它是空的)決定是否預編譯
  5. 如果管道已打開且您沒有assets文件夾,則預編譯必須失敗。

嘗試改變這個。 我希望這能幫到您。

在config / environments / production.rb中

config.assets.compile = true config.assets.digest = true

你可能在錯誤的Heroku堆棧上。 在創建使用資產管道的應用程序時,請確保指定stack Cedar。

heroku create -stack cedar

它不會部署的原因是因為Google字體。 將文件移動到application.css,例如:

 *= require_self
 *= require_tree .
 */


@import url(http://fonts.googleapis.com/css?family=Special+Elite);

將允許應用程序部署,並使字體工作。

暫無
暫無

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

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