當我在本地運行時,一切正常,但是當我推送到heroku時失敗。我發現,我需要修改所有的.css文件中app/assets/stylesheets/
有.css.scss
擴展,並確保我的Gemfile包含:推送到Heroku後找不到CSS
gem 'sass-rails', '4.0.1'
group :production, :staging do
gem 'rails_12factor' # for heroku
end
在我的.css.scss
文件,我現在用的image-url()
代替url()
指向指紋圖像(由heroku和資產編輯業務指紋和重組)。
在app/views/layouts/mycontrollername.html.erb
:
<head>
...
<%= stylesheet_link_tag "path/to/css/file" %>
</head>
但我仍然無法找到正確的道路。當我查看源代碼時,除了指紋之外,我看到了我期望的路徑:path/to/css/file.css
而不是path/to/css/file-somemd5hash.css
。請注意,該路徑不包含assets/path/to/css/file。
http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets
編輯
我已經證實,有在Heroku上沒有編譯css文件中的公共/資產/。有一個application.js文件(它是空的),即使我爲每個控制器都有一個.js.coffee文件。我沒有application.css,每個控制器只有一個.css。
我沒有很大的答案,但是這解決方法爲我工作:在'config/environments/production.rb'中註釋掉'config.serve_static_files = ENV ['RAILS_SERVE_STATIC_FILES']。present?'並用'config.serve_static_files = true'替換它。我希望我知道這是爲什麼起作用雖然... – nipponese