簡體   English   中英

為什么預編譯資產不再起作用?

[英]Why does precompile assets no longer work?

Rails 4.2.1,Ruby 2.2.6,鏈輪3.7.1,sprockets-rails 3.2.0

我正在嘗試使用新的.js文件部署到我的登台服務器,並且預編譯沒有執行任何操作。 這是帶有“ --trace”的輸出。

  ** Invoke assets:precompile (first_time)
  ** Invoke assets:environment (first_time)
  ** Execute assets:environment
  ** Invoke environment (first_time)
  ** Execute environment
  ** Execute assets:precompile
  ** Invoke ckeditor:nondigest (first_time)
  ** Invoke environment 
  ** Execute ckeditor:nondigest

我試過運行rake asset:clean,assets:clobber和assets:precompile,在有和沒有'RAILS_ENV = staging bundle exec'的情況下使用這些命令-不做任何事情。 我刪除了Assets文件夾,然后再次運行了預編譯-什么都沒有。 我增加了assets.version-什么都沒有。

我嘗試將資產的precompile指令放在/config/initializers/assets.rb、/config/environments/staging.rb和/config/application.rb中

 Rails.application.config.assets.version = '1.0.2'
 Rails.application.config.assets.precompile += %w(
  admin.css
  admin.js
  new_file.js
 )

有沒有辦法告訴資產:precompile正在查看哪個文件?

*更新*

設置asset.compile = true並進行部署可以使資產進行預編譯。 我給人的印象是,該指令將使Rails可以即時為資產提供服務,而不是使用預編譯的資產。 這是正確的嗎?

 Rails.application.config.assets.compile = true

是的,將config.assets.compile = true設置將config.assets.compile = true應用程序的性能,並導致生產中隨機地進行長頁面加載。 嘗試運行“捆綁exec rake資產:預編譯RAILS_ENV = production”,以便它使用您的生產環境配置。 文件。 至於您在哪里尋找預編譯的其他問題,rails配置中有一個前綴設置。 您可以用來說明您希望將預編譯資產轉到何處。 防爆。 config.assets.prefix = '/production'但默認設置為公共資產文件夾。

更新:(我打算就該主題寫一篇長篇文章,但它的創建者似乎寫了為什么要避免詳細介紹,可以在以下鏈接中找到:

在Rails生產中config.assets.compile = true,為什么不呢?

暫無
暫無

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

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