簡體   English   中英

Ruby on Rails:Ran rake資產:預編譯,現在本地部署和heroku部署都不包含引導程序

[英]Ruby on Rails: Ran rake assets:precompile and now both local and heroku deployment don't include bootstrap

我在將項目部署到heroku服務器時遇到問題(預編譯失敗)。 因此,我找到了此響應, https://stackoverflow.com/a/13713753/2989437 ,並遵循了建議。 我在application.rb文件中添加了一行:

application.rb

module FirstEdc
  class Application < Rails::Application
    config.assets.initialize_on_precompile = false # I added this line
  ...
 end
end

然后,我運行了precompile命令,提交了更改,並設法成功地部署到了heroku。 但是,現在我的bootstrap / css似乎已經停止在heroku部署和本地部署上運行。

我了解到應該在我的Deployment.rb文件中添加另一行:

deployment.rb

FirstEdc::Application.configure do
  ...

  # Allows for local precompilling --added by Ian
  config.assets.prefix = '/dev-assets'
end

因此,我添加了此內容,重新編譯並重新部署,但無濟於事。

最后,我運行了rake asset:clean,以至少使我的本地部署恢復正常,但是沒有用。

任何建議將不勝感激。 我現在正在閱讀更多有關資產管道的信息,但是我覺得這可能是緩存問題或其他問題。 我會根據發生的情況進行更新。

編輯。 為了澄清起見,我嘗試刪除兩個添加項,運行rake asset:clean和rake asset:clean:all,但均未修復本地部署。

我沒有在任何應用程序中使用config.assets.prefix ,它們在Heroku上也能正常工作,因此不確定該怎么做。

嘗試刪除該行,然后運行rake assets:clean 現在,您的本地服務器應該在更改文件時使用這些文件。 要推送時,請先運行rake assets:precompile ,然后再推送。

如果要在此之后進行本地更改,請再次運行rake assets:clean以清除本地計算機上的預編譯文件。

如果Heroku在public/assets檢測到任何文件,它將不會嘗試再次預編譯資產。 這是設計使然。

因此,您需要做出決定,要么始終使用rake assets:precompile ,要么在推送到Heroku之前刪除public/assets中的任何文件。

(推薦的方法是允許Heroku在推送期間對其進行預編譯)

暫無
暫無

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

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