【问题标题】:Compass + Dropbox = File to import not found or unreadableCompass + Dropbox = 找不到或无法读取要导入的文件
【发布时间】:2013-10-11 02:47:42
【问题描述】:

我遇到了一个有趣的错误。 我的 sass 文件位于 Dropbox 文件夹中。我在我的开发电脑上本地编辑它们,然后通过 Dropbox 将它们同步到服务器。在服务器上,我安装了 CLI Dropbox 服务的 CentOS。

我有一个 app.scss 文件和一个 app.scss 中包含的 _settings.scss 文件。如果我编辑 _settings.scss,则会引发以下错误:

    error app.scss (Line 2: File to import not found or unreadable: settings.
Load paths:
  /www/psmb.dev/web/typo3conf/ext/speciality/Resources/Public/foundation/sass
  /usr/local/lib/ruby/gems/1.9.1/gems/compass-0.12.2/frameworks/blueprint/stylesheets
  /usr/local/lib/ruby/gems/1.9.1/gems/compass-0.12.2/frameworks/compass/stylesheets
  /usr/local/lib/ruby/gems/1.9.1/gems/zurb-foundation-4.3.1/scss
  Compass::SpriteImporter)

如果我随后更改 app.scss 中的某些内容,则它的编译不会出错。 现在有趣的是:如果我在服务器本地或通过 ssh 编辑 _settings.scss,则不会引发错误!

怎么了?

【问题讨论】:

  • 可能是_settings.scss在同步时被锁定,watcher无法编译?
  • 但是为什么编译的时候需要写权限呢?
  • Hz,尝试来自this问题的问题
  • @Pinal 你到底有什么建议? compass compile?当然可以,但是直到下一次更改...
  • 我暂时找到了一种解决方法,可以在 Sublime Text 中为我的 scss 文件夹设置 ftp 同步,但这不是很优雅...

标签: sass dropbox compass-sass


【解决方案1】:

确保您在 SASS 文件中使用 linux 行尾,因为这可能会导致编译失败。

当你在 windows 中编辑它时,它可能将它设置为 windows 行结尾。

当你在 CentOS 中编辑它时,它可能会将它们设置为 unix 行结尾。

【讨论】:

  • 感谢您的建议,但事实并非如此。如果我通过本地机器上的 Sublime Editor 中的 ftp 自动同步进行编辑,而不是通过 Dropbox 同步进行编辑,则一切正常。问题似乎出在 Dropbox 同步本身,但我不明白这是怎么可能的。即使 Dropbox 在同步期间锁定了写入权限,它也不应该锁定读取权限,而且对于 compass 进行编译,读取权限就足够了,对吧?
  • 不过,Harry 的怀疑可能是正确的。 FTP 程序具有在 win 和 unix 系统之间自动转换行尾的功能,您需要检查 sublime 中的 FTP 是否为您执行此操作。 Dropbox 没有这种能力。
  • 查看我对上述答案的评论。
【解决方案2】:

经过一些建议和 Dmitri 的测试验证,我们得出的结论是,很有可能 compass watch “过早”地捕捉到文件更改,而 Dropbox 进程正在完全同步文件。文件同步可能通过 2 个或更多连续的文件更新步骤来实现。

如果 compass watch 的编译触发器可以稍微延迟一些,则问题可能会得到解决。目前,Dmitri 决定改用 ftpsync。

【讨论】:

    猜你喜欢
    • 2014-02-28
    • 2014-09-09
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 2011-11-30
    • 2020-11-13
    相关资源
    最近更新 更多