【发布时间】:2014-10-23 22:03:20
【问题描述】:
情况
- 在
.bowerrc中使用bower - 在
bowerrc设置目录vendor/assets/bower_components - 在配置中
application.rb我输入了config.assets.paths << Rails.root.join('vendor', 'assets', 'bower_components') - 安装名为 «fotorama» 的画廊插件,由 bower 完成
- 插件«fotorama»的所有文件现在都存储在这个目录
"/vendor/assets/bower_components/fotorama" - 在清单 css 文件
application.css我输入*= require fotorama/fotorama.css - 在布局文件中我输入了
<%= stylesheet_link_tag "application" %>
启动服务器rails server — 一切正常。在生成页面的源代码中,我看到了<link href="/assets/fotorama/fotorama.css?body=1" rel="stylesheet" />。这个css文件有.fotorama__video-play {background: url(fotorama.png) no-repeat}这一行,还有很多其他行使用url作为文件“fotorama.png”,没关系,浏览器尝试在css文件附近找到这个png文件,成功了。
停止服务器,预编译所有资产rake assets:precompile,然后在生产环境中运行服务器rails server -e production
问题
在生产中,我所有的 css 文件都连接在一起,在页面的源代码中它看起来像这样 <link href="/assets/application-2d31fc33890d01b046194920367eb3d4.css" rel="stylesheet" />,而这个文件仍然有这一行 .fotorama__video-play {background: url(fotorama.png) no-repeat}。现在浏览器试图在http://localhost:3000/assets/fotorama.png这里找到png文件,但它不在这里,它不在任何地方,因为,我不知道为什么,"public/assets"文件夹中没有"fotorama.png"。
问题
- 为什么图片没有从
"/vendor/assets/bower_components"传输到“public/assets” - 您有什么想法吗,我可以做些什么来解决我的问题?重要的是,我不想以编程方式手动更改 css 中的 url — 好的。
对不起,我的英语不好,感谢所有愿意帮助我的人。
【问题讨论】:
标签: css ruby-on-rails ruby-on-rails-4 bower