请有人帮忙,花上几个小时,这让我很生气。
我在轨道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文件中的所有其他图像都呈现正常(末尾有额外的数字和字母串)但我的样式表中没有任何内容正常工作。
答案 0 :(得分:1)
rails 4在资产管道方面有不兼容的变化。
我认为这些改变是好的,因为它们消除了很多魔法,导轨确实向后兼容。
在rails 3中真正令人讨厌的一点是rake assets:precompile
的工作方式。
它始终尝试使用生产环境运行任务。并且它运行了两次以生成带有指纹的资产而没有它们。
现在,当您想要在生产中生成资源时,您必须将环境传递给rake任务,例如RAILS_ENV=production rake assets:precompile
。
新任务在没有指纹的情况下不生成任何资产。如果你想拥有那些,你需要构建一些自定义的东西(在你的capistrano任务中的manifest.yml中的符号链接东西等)。