cha*_*doh 17 ruby-on-rails sass asset-pipeline compass-sass
在第2.2.2节"CSS和Sass"中,我被告知放入image-url('delete.png')
我的sass.所以我有.
但是,它正在生成CSS
background-image: url(/images/delete.png)
Run Code Online (Sandbox Code Playgroud)
而不是我告诉他应该生成的东西,正确而明显的东西,
background-image: url(/assets/delete.png)
Run Code Online (Sandbox Code Playgroud)
什么.哎呀.
我花了很多天试图弄清楚这是从哪里来的.
以下是导致此行为的相关设置的要点.以下是我们的代码库早期版本中相同文件的要点(在我们实施资产管道之后,它实际上工作了大约一周才出现这种令人沮丧的行为).你能发现差异吗?你能想到的任何其他文件可能会导致这种情况吗?
sass-rails
因为较新版本Stack level too deep!
在预编译时会导致错误.因为实际上对资产管道进行故障排除有点糟糕.
我试图将所有图像移动到public/images
并将其添加为加载路径.这在dev中工作(图像可以在任何一个/assets
或者访问/images
),但是生产的预编译/assets
仅将指纹图像放入(obvs)中,因此当sass-rails放入时url(/imagse/delete-120398471029384102364.png)
,它无法找到.
这可能适用于生产,但在开发中,/ assets文件夹不存在,因此url(/images/delete.png)
指令会导致图像不均匀.
emr*_*ass 10
如果你还没有这个,请命名你的css文件*.css.scss
(而不是.sass
- 如果你这样做,你可能需要调整一些语句的语法).然后使用image_path
帮助器代替image-path
,例如:
background-image:url(image_path('delete.png'));
Run Code Online (Sandbox Code Playgroud)
我希望这能解决你的问题.如果没有,这种方法为您生成的资产路径是什么?
这看起来是由于您的sass-rails版本(3.1.0).我可以重现你的问题(感谢发布Gemfile),当它碰到sass-rails 3.1.4时就会消失.
尝试升级到3.1.4并清除tmp/cache
.还要确保您没有点击任何浏览器缓存.
我知道你说3.1.4引起了其他问题...你试过更高版本吗?
它确实看起来像这个问题: https: //github.com/rails/sass-rails/issues/57 如果是这样,你应该尝试找到 Compass 和 Sass-rails 之间版本的良好组合。
也许将所有内容(包括 Rails)升级到最新版本,这仍然是最好的方法(使用bundle outdated
捆绑器 1.2 中的命令来知道要升级哪些 Gems)
归档时间: |
|
查看次数: |
8796 次 |
最近记录: |