这里的文档说明了在Rails4中部署期间预编译资产的heroku。
然而, 我没有看到预编译资产消息。
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
我在我的应用程序中遇到了bootstrap问题,导航栏无法正常加载+其他一些细微差别,我认为它是资产预编译问题。
我正在使用Rails4,Ruby2.0
我在application.rb
中启用了资源config.assets.enabled = true
手动预编译没有帮助
heroku run rake assets:precompile
答案 0 :(得分:19)
有同样的问题。我出于某种原因在本地进行了预编译,然后推送到了Heroku。
Saw Heroku给出了“检测到的清单文件,假设资产是在本地编译的”这一行,这让我意识到它并没有预先编译所有的东西。
当我做了“git add”。并且承诺,我看到它添加了一堆公共文件。把它推到Heroku让它发挥作用。所以我不得不每次都进行预编译和git添加,基本上做了Heroku的工作,并在我的公共文件夹中弄乱了。它完成了工作,但是很难解决。
我查找了heroku提到的“manifest”,并最终在公共目录中找到了“.sprockets-manifest ...”文件。
删除了那个,Heroku再次成了我的朋友。
发现这个问题是我研究的一部分,所以我想我会分享我发现的事情,以防其他人看到这个,或者有任何精心的想法。
现在我必须去看看.sprockets-manifest是否对其他任何东西都很重要....
答案 1 :(得分:4)
我在资产管道上挣扎了一段时间。关于资产管道如何在新的Rubyist中运作似乎有些混乱。根据我的经验,这是Heroku资产管道的工作流程。
rm -rf ./public/assets
mkdir public/assets
rake assets:precompile
命令git add -A
然后git ci -am "commit message goes here"
git push heroku master
注意:这需要重复 - 在推送到Heroku之前,请确保您的资产在localhost上正常工作。
答案 2 :(得分:2)
删除public / assets文件夹有帮助。我还运行了heroku运行rake资产:干净。
After that I could see:
----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
导航栏现在加载好了!
答案 3 :(得分:0)
如果公共资产中有Detected manifest file, assuming assets were compiled locally
或.sprockets-manifest-*.json
,则会显示消息manifest-*.json
。因此,删除单个文件或整个public/assets
都可以。
buildpack的源代码为here