2013-12-17 138 views
6

這裏的文檔表示,在Rails4中部署期間使用預編譯資源的heroku。Heroku沒有爲rails4預編譯資產

但是, 我沒有看到預編譯資產消息。

 Using thin (1.6.1) 
     Using twitter-bootstrap-rails (2.2.8) 
     Using uglifier (2.3.1) 
     Using will_paginate (3.0.4) 
     Your bundle is complete! It was installed into ./vendor/bundle 
     Bundle completed (1.37s) 
     Cleaning up the bundler cache. 
-----> Writing config/database.yml to read from DATABASE_URL 
     Detected manifest file, assuming assets were compiled locally 
-----> Discovering process types 
     Procfile declares types -> (none) 
     Default types for Ruby -> console, rake, web, worker 

我現在面臨的問題與引導我的應用程序,其中的導航欄不會正確加載+其他一些細微之處,我認爲它的資產預編譯的問題。

我使用Rails4,Ruby2.0

我在application.rb中

config.assets.enabled = true 

手動啓用預編譯沒有幫助

heroku run rake assets:precompile 

回答

1

刪除公共資產/資產文件夾幫助。我還跑了英雄運行耙子資產:乾淨。

After that I could see: 
----> Writing config/database.yml to read from DATABASE_URL 
-----> Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 

導航欄現在加載得很好!

4

我在資產管道中掙扎了一段時間。資產管道如何在新的Rubyists中起作用似乎有點混亂。根據我的經驗,這是我Heroku資產管道的工作流程。

  • 確保資產在本地主機上本地運行(需要的Heroku)
  • 刪除了Rails目錄的公共/資產文件夾rm -rf ./public/assets
  • 建立一個新的資產目錄中mkdir public/assets
  • 運行rake assets:precompile命令
  • 您應該看到您的命令行中正在預編譯的資產列表
  • 一旦資產預編譯,您應該提交通過以下命令e變化:git add -A然後git ci -am "commit message goes here"
  • 最後,通過git push heroku master

注意推的Heroku:這值得重複 - 確保你的資產在本地主機上推到Heroku的前正常工作。

13

有這個相同的問題。由於某種原因我在本地進行了預編譯,然後推送到Heroku。

看到Heroku給出了「檢測到的清單文件,假設資產是在本地編譯的」,這讓我意識到它不是預編譯所有的東西。

當我做了一個「git add」。並承諾,我看到它添加了一堆公共文件。把它推到Heroku讓它工作。所以我不得不每次都進行預編譯和git添加,基本上是爲了Heroku的工作,並在我的公用文件夾中搞亂了。它完成了這項工作,但卻是一個糟糕的解決方案。

我查找了heroku提到的「清單」,並最終在公共目錄中找到了「.sprockets-manifest ...」文件。

刪除和Heroku再次是我的朋友。

發現這個問題是我研究的一部分,所以我想我會分享我發現的情況,以防其他人看到這個,或者有任何精心的想法。

現在我必須去看看.sprockets艙單是什麼都重要....

+0

記住'.sprockets-manifest'文件是隱藏:) –

+0

這應該是公認的答案 –

+0

保存我的生活在這裏。沒有意識到這甚至被推到回購。謝謝! – SVetter