繁体   English   中英

Rails 4在生产模式下未显示图像

[英]Rails 4 not showing imgaes in Production mode

我通读了Stack Overflow和Google上的每个链接。 我花了很多时间尝试一些东西。 但是无法弄清楚这个问题。

我的应用程序资产中有以下文件夹结构

app
  ->images
   ->application (folder)
    image1..
    image2..
   ->icons (folder)
     image3..
     image4..

我的样式表文件夹中有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

我可以看到我的所有图像正确地散列在public / assets,public / assets / application和public / assets / icons中。

在开发模式下一切正常。 但是我看不到生产模式下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;}

但仍然是同样的问题。 任何帮助深表感谢。

尝试将文件名更改为app.css.scss并使用assert-url帮助器:

{background: asset-url('icons/user-business-gray.png') no-repeat 2px center transparent;}

这解决了问题:

{background: image-url('icons/user-business-gray.png') no-repeat 2px center transparent;}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM