【问题标题】:SASS/compass path in config.rb causing problem on compileconfig.rb 中的 SASS/compass 路径导致编译出现问题
【发布时间】:2011-09-17 14:25:29
【问题描述】:

当我编译我的 SCSS 时,我收到一个“找不到文件”错误,这让我相信我的 config.rb 有问题。来自命令行的错误包括路径的一部分以及“..”相对目录的两倍:

文件未找到或无法读取: C:/REALLY_LONG_PATH/C:/REALLY_LONG_PATH/../img/avatar.jpg

config.rb 内容如下:

# Delineate the directory for our SASS/SCSS files (this directory)
sass_path = File.dirname(__FILE__)

# Delineate the CSS directory (under resources/css in this demo)
css_path = File.join(sass_path, "..", "css")

# Delinate the images directory
images_dir = File.join(sass_path, "..", "img")

# Load the sencha-touch framework
load File.join(sass_path, '..', 'js', 'sencha', 'resources', 'themes')

# Specify the output style/environment
output_style = :expanded
environment = :production

如果我在 SCSS 文件中省略了引用它的 CSS,则不会出现此错误:

background-image: inline-image('avatar.jpg');

但考虑到我想实际使用该图像这一事实,这给我带来了问题。任何帮助都会很重要。

编辑:另一件值得注意的事情是,我的 CSS 似乎使用与 img 路径相同的格式在适当的目录中渲染得很好。

【问题讨论】:

  • 为什么你的路径名很长?
  • 只是为了说明而缩短。那不是一些路径变量或其他东西。感谢您的检查。
  • 我想知道这是否是 Windows/Ruby 的问题...如果您了解路径的工作原理,您可以尝试使用绝对路径而不是相对路径吗?
  • 是的,这没有什么坏处,考虑到只有编译后的 CSS 才能上线。当我重新开始优化并需要做内联图像时,我可能会尝试这样做。

标签: ruby rubygems sencha-touch sass compass-sass


【解决方案1】:

此时的解决方法是直接使用url('image.jpg') 调用,但最终需要使用inline-image('image.jpg') 进行优化。 (这超出了本主题的范围,所以我将其视为已回答,除非有人有更好的解释。)

更新

更好的答案:相信错误并实际包含它说它需要的文件。之前让我感到震惊的是路径名看起来不对,但这很可能是由于我自己的路径连接不正确。另外,不要被结果路径中间的“..”抛出。它只是意味着“向上移动一个目录”,当然仍然是合法的。

【讨论】:

  • 大约 5 年后我遇到了同样的问题...您能否更具体地了解“实际包含它说需要的文件”?这是否意味着以某种方式在 config.rb 文件中“包含”图像文件?如果有,怎么做?
猜你喜欢
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多