在section 2.2.2, "CSS and Sass"中,我被告知将image-url('delete.png')
放在我的菜单中。所以我有。sass-rails资产管道:错误地生成图像路径; `url(/images/blah.png)`而不是`url(/assets/blah.png)`
但是,生成CSS像
background-image: url(/images/delete.png)
,而不是说我告诉无处不应该发生,正确的和显而易见的事情的东西,
background-image: url(/assets/delete.png)
什么。哎呀。
我花了几天的时间试图弄清楚这是从哪里来的。
这是a gist of relevant settings导致此行为。这里是a gist of the same files in an earlier version of our code base(在我们实施了资产管道之后,它实际上在这种令人沮丧的行为出现之前实际工作了大约一周)。你能发现差异吗?你能想到的任何其他文件可能会导致这种情况?
注
- 我们特意使用
sass-rails
一个老版本,因为在预编译的新版本是导致Stack level too deep!
错误。 - 我们正在使用指南针。在解决方法
因为实际上故障排除的资产管道还挺吮吸
两个hackish的尝试。
1:将图像/影像
我试图只是所有图像移动到public/images
,并添加作为负载路径。这在dev中可用(图像可以在/assets
或/images
下访问),但是对于生产的预编译只会将指纹图像置于/assets
(obvs),所以当sass-rails放入url(/imagse/delete-120398471029384102364.png)
时,找不到它。
2:制作/公共/图像的符号链接到/公/资产
这将在生产中可能的工作,但在发展中/资产文件夹不存在,所以url(/images/delete.png)
指令导致unfound图像。
你有没有尝试过以下方法:'asset_path'delete.png''? – ccyrille
这将是'asset-url('delete.png',image)'。是的,我试过了。正如人们所希望的那样,'image-url('delete.png')'只是简写。他们有完全相同的行为。 – chadoh
如何使用.sass.erb文件并使用<%= asset_path('delete.png')%>?虽然它仍然是一种解决方法,但是如果sass-rails出现故障,可能值得尝试诊断。 – Chris