图像路径生成参考在Rails 4中不起作用

时间:2013-09-30 05:18:47

标签: ruby-on-rails ruby-on-rails-4

请有人帮忙,花上几个小时,这让我很生气。

我在轨道4上,使用apache / passenger如果有帮助的话。我还跑了:“rake assets:precompile”并重新启动了apache。

我在我的样式表中使用了这个:

background-image: url(image-path('pretty-background-image.jpg'));

在生产中,这是在css文件中输出的:

background-image: url("/assets/pretty-background-image.jpg");

从这张票和很多乱七八糟的东西,我明白了这样的应该输出:

background-image: url("/assets/pretty-background-image-8b313354987c309e3cd76eabdb376c1e.jpg");

但事实并非如此。尝试使用时,我遇到了与字体相同的问题:

asset-url('font-name.eot')

html.erb文件中的所有其他图像都呈现正常(末尾有额外的数字和字母串)但我的样式表中没有任何内容正常工作。

1 个答案:

答案 0 :(得分:1)

rails 4在资产管道方面有不兼容的变化。

我认为这些改变是好的,因为它们消除了很多魔法,导轨确实向后兼容。

在rails 3中真正令人讨厌的一点是rake assets:precompile的工作方式。

它始终尝试使用生产环境运行任务。并且它运行了两次以生成带有指纹的资产而没有它们。

现在,当您想要在生产中生成资源时,您必须将环境传递给rake任务,例如RAILS_ENV=production rake assets:precompile

新任务在没有指纹的情况下不生成任何资产。如果你想拥有那些,你需要构建一些自定义的东西(在你的capistrano任务中的manifest.yml中的符号链接东西等)。