在2.2.2节“ CSS和Sass”中,告诉image-url('delete.png')
我放入我的Sass。所以我有。
但是,它正在生成CSS
background-image: url(/images/delete.png)
而不是在任何地方都告诉我它应该产生的东西,正确而明显的东西,
background-image: url(/assets/delete.png)
什么。该死的。
我花了几天的时间试图弄清楚这是从哪里来的。
这是导致此行为的相关设置的要点。这是我们较早版本的代码库中相同文件的要点(在我们实施资产管道之后,实际上它工作了大约一周,然后才出现这种令人沮丧的行为)。您能发现差异吗?您能想到的其他文件可能是造成这种情况的原因吗?
注意
- 我们故意使用较旧的版本,
sass-rails
因为较新的版本Stack level too deep!
在预编译时会导致错误。 - 我们正在使用指南针。
两种变通方法
因为实际上对资产管道进行故障排除有点烂。
1:将图像放在/ images中
I attempted to just move all of the images to public/images
and add that as a load path. This worked in dev (images are accessible at either /assets
or /images
), but precompiling for production puts the fingerprinted images in /assets
only (obvs), so when sass-rails puts in url(/imagse/delete-120398471029384102364.png)
, it can't be found.
2: Make /public/images a symlink to /public/assets
This would probably work in production, but in development the /assets folder doesn't exist, so the url(/images/delete.png)
directives result in unfound images.
为了我,
改变
image_path
为image-path
工作.scss
。后来,我image_path
再次切换到它,现在工作正常。删除缓存并没有帮助我。