2011-11-23 85 views
33

更新轨3.1部署在Heroku上的.css不预编译错误

,因为我有没有用的CSS中要编译一个public.css和public.js文件我得到这个错误, .js文件。解决的办法是当你从所有文件名的应用程序都已经添加的注释看到这行添加到production.rb文件

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) 
config.assets.precompile += %w(public.js public.css ) 

。所以,我只需要添加那些不被称为应用程序的那些。

希望它可以帮助别人!

原来的问题

我有这样的宝石文件

gem 'rails', '3.1.0' 

group :production do 
    gem 'pg' 
end 
group :development, :test do 
    gem 'sqlite3' 
end 

gem "heroku" 
gem 'thin' 
gem 'sass-rails', " ~> 3.1.0" 
gem 'coffee-rails', "~> 3.1.0" 
gem 'tabulous' 
gem 'json' 
gem "paperclip", "~> 2.4" 
gem "devise" 
gem "redcarpet" 

group :assets do 

    gem 'uglifier' 
end 

gem 'jquery-rails' 

gem "rspec-rails", :group => [:test, :development] 
group :test do 
end 

,当我用 “混帐推Heroku的大师,” 我看到这个

Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets/admin 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets/admin 
-----> Rails plugin injection 
     Injecting rails_log_stdout 
     Injecting rails3_serve_static_assets 
-----> Discovering process types 
     Procfile declares types  -> (none) 
     Default types for Ruby/Rails -> console, rake, web, worker 
-----> Compiled slug size is 31.2MB 
-----> Launching... done, v5 
     http://maktaba.herokuapp.com deployed to Heroku 

但在Heroku的日志部署我得到这个ActionView :: Template :: Error。 CSS是没有预编译 奇怪..我thougt它一直在寻找在部署反馈

2011-11-23T22:59:48+00:00 app[web.1]: Rendered public/index.html.erb within layouts/first (0.7ms) 
2011-11-23T22:59:48+00:00 app[web.1]: Completed 500 Internal Server Error in 30ms 
2011-11-23T22:59:48+00:00 app[web.1]: 
2011-11-23T22:59:48+00:00 app[web.1]: ActionView::Template::Error (public/public.css isn't precompiled): 
2011-11-23T22:59:48+00:00 app[web.1]:  2: <html> 
2011-11-23T22:59:48+00:00 app[web.1]:  3: <head> 
2011-11-23T22:59:48+00:00 app[web.1]:  4: <title>Maktaba</title> 
2011-11-23T22:59:48+00:00 app[web.1]:  5: <%= stylesheet_link_tag "public/public" %> 
2011-11-23T22:59:48+00:00 app[web.1]:  6: <%= javascript_include_tag "public/public" %> 
2011-11-23T22:59:48+00:00 app[web.1]:  7: <%= csrf_meta_tags %> 
2011-11-23T22:59:48+00:00 app[web.1]:  8: <%= csrf_meta_tags %> 
2011-11-23T22:59:48+00:00 app[web.1]: app/views/public/index.html.erb:5:in `_app_views_public_index_html_erb___1726244208117637261_45234420' 
2011-11-23T22:59:48+00:00 app[web.1]: app/controllers/public_controller.rb:13:in `block (2 levels) in index' 
2011-11-23T22:59:48+00:00 app[web.1]: 
2011-11-23T22:59:48+00:00 app[web.1]: app/controllers/public_controller.rb:12:in `index' 

任何你能看到什么,我做错了什么?在您的本地代码

+2

期间蛞蝓汇编

  • 编译编译添加线'config.assets.precompile + =%(重量)(public.js public.css)'到production.rb,然后运行'bundle exec rake assets:precompile',然后进行push和heroku restart,这对我来说是个诀窍。谢谢。 – scald

  • 回答

    18
    • 运行bundle exec rake assets:precompile
    • 提交更改并部署到Heroku的

    如果这是您第一次部署你的应用程序的Heroku,您可以在此之后得到解决遇到更多的错误。让我知道发生什么事。

    7

    实际上,你需要为你的生产运行预编译环境:在本地

    • 运行RAILS_ENV=production bundle exec rake assets:precompile提交并部署到Heroku的

    更广泛地说,Heroku docs描述三个选项用于Cedar上Rails 3.1+的资产编译:

    1. 编译局部(在此答案覆盖)
    2. 期间运行时