你好我在我的gemfile中包含了以下内容
group :production, :staging do
gem 'rails_12factor'
end
和inmy stylesheets我已将图片包含为mytest.css.scss
.abc{background: image-url('/assets/mobile/phone.png');}
in production.rb
config.serve_static_assets = true
config.assets.compile = true
并且在herokurun bash中我有rake资产:预编译,但仍然没有加载图像,样式表和javascripts。请指导我如何解决这个问题
答案 0 :(得分:1)
尝试以下方法之一:
background-image: image-url("logo.png")
background-image: asset-url("logo.png", image)
background-image: asset-url($asset, $asset-type)
background-image: asset-data-url("logo.png")
答案 1 :(得分:0)
有时,Heroku需要时间来识别新资产 - 我们发现如果您在预编译后重新启动dyno,它通常会在刷新时加载它们:heroku restart
您应该使用引用的动态帮助程序(根据sadaf2605
的回答:
#app/assets/stylesheets/application.js
.element {
background: asset_url("your_image_url.png");
}
您需要做的另一件事是预编译production
-
rake assets:precompile RAILS_ENV=production
<强>调试强>
很难看出问题可能是什么;我们调试它的主要方式如下:
right-click
并view source
console
中,您可能会看到一系列404
(resource not found
)错误。如果应用正在寻找指纹文件,那么这是一个好兆头(这意味着您拥有的文件不正确)。要解决此问题,您应该在发送到Heroku之前预先编译:
$ rake assets:precompile RAILS_ENV=production
$ git add .
$ git commit -a -m "Fix"
$ git push heroku master
这会将正确的文件发送给Heroku。
如果您的应用没有查找指纹文件,则表示您必须在CSS中正确引用它们。我想你已经知道了(如上所述)。