Heroku上的Rails 4有一个奇怪的问题.编译图像时,它们会添加哈希值,但CSS中对这些文件的引用没有调整正确的名称.这就是我的意思.我有一个名为logo.png的文件.然而,当它出现在heroku上时,它被视为:
/assets/logo-200a00a193ed5e297bb09ddd96afb953.png
Run Code Online (Sandbox Code Playgroud)
然而,CSS仍然指出:
background-image:url("./logo.png");
Run Code Online (Sandbox Code Playgroud)
结果:图像不显示.有人碰到这个吗?怎么解决这个问题?
我有一个Rails应用程序,它使用style.css.scss文件中的背景图像.我发现了多种显示图像的localhost方法,但没有办法让它们在Heroku上显示.
我已经看了看所以像很多帖子这个和这个,还有其他网站,如本,但至今没有奏效.
这是我在我的代码style.css.scss:
.hero-000 {
width: 102%;
background: url(asset-path("hero-000.jpg")) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
Run Code Online (Sandbox Code Playgroud)
不过,我也尝试过background-image,image-url,asset-url,和许多其他排列作为连接,从而发现帖子.
我在我的production.rb文件中有这个:
config.serve_static_files = true
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
config.assets.compile = true
config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)
这在我的application.html.erb文件中调用css表:
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
Run Code Online (Sandbox Code Playgroud)
正如其他帖子所建议的,我已将此添加到我的application.rb:
config.assets.initialize_on_precompile = false
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法都会很高兴收到!
附加信息
这是我的gemfile:
source 'https://rubygems.org'
gem 'rails', '4.2.5' …Run Code Online (Sandbox Code Playgroud)