我通读了Stack Overflow和Google上的每个链接。我花了很多时间尝试一些东西。但无法解决这个问题。
我的应用资产中有以下文件夹结构
app
->images
->application (folder)
image1..
image2..
->icons (folder)
image3..
image4..
我的stylesheets文件夹中有application.css文件,如下所示:
app
->stylesheets (folder)
application.css
->application (folder)
app.css
application.css有以下条目:
*= require_tree ./application
因此它正在加载我的app.css文件,其中包含我的应用程序的所有css。在我的app.css中我正在使用:
{background: url('icons/user-business-gray.png') no-repeat 2px center transparent;}
我的config / environments / production.rb有:
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
#config.serve_static_assets = false
config.assets.compile = false
config.assets.digest = true
我的config / initializers / assets.rb有:
Rails.application.config.assets.paths << Rails.root.join( "app/assets/images/application")
我做了:
RAILS_ENV=production rake assets:precompile
我可以在公共/资产,公共/资产/应用程序和公共/资产/图标中正确看到我的所有图像。
在开发模式下一切正常。但我看不到生产模式下app.css文件中引用的任何图像。
如果我使用<%= image_tag('icons/user-business-gray.png') %>
直接将图像添加到.erb,我可以正确地看到图像。但我看不到上面引用的app.css引用的任何图像。
我甚至将app.css的名称更改为app.css.scss并引用了如下图像:
{background: url(assets-path('icons/user-business-gray.png')) no-repeat 2px center transparent;}
但仍然是同一个问题。非常感谢任何帮助。
答案 0 :(得分:0)
尝试将文件名更改为app.css.scss
并使用assert-url
帮助程序:
{background: asset-url('icons/user-business-gray.png') no-repeat 2px center transparent;}
答案 1 :(得分:0)
这解决了这个问题:
{background: image-url('icons/user-business-gray.png') no-repeat 2px center transparent;}