在第 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
我试图将所有图像移动到public/images
并将其添加为加载路径。这在开发中有效(图像可在/assets
或中访问/images
),但生产的预编译仅将指纹图像放入/assets
(obvs),因此当 sass-rails 放入时url(/imagse/delete-120398471029384102364.png)
,无法找到它。
2:使 /public/images 成为 /public/assets 的符号链接
这可能在生产中有效,但在开发中 /assets 文件夹不存在,因此url(/images/delete.png)
指令会导致找不到图像。