【问题标题】:Precompiling a .scss manifest file using Rails 3.1's asset pipeline使用 Rails 3.1 的资产管道预编译 .scss 清单文件
【发布时间】:2011-11-14 03:15:14
【问题描述】:

Rails 3.1 的发布版本在预编译扩展名为 scss 的 sass 清单文件时遇到了一些奇怪的问题。奇怪的是默认清单文件application.scss 编译良好,我在public/assets/ 下看到它。

但是,当我尝试编译我的自定义清单文件时,没有创建任何内容。我在生产配置中启用了预编译选项。

config.assets.precompile += %w( user.scss admin.scss )

据我所知,我正在正确运行预编译 rake 任务。

rake assets:precompile RAILS_ENV=production

也许这会有所帮助。当我创建两个扩展名为 css 而不是 scss 的新清单文件并需要其中的原始 scss 文件时,这些新清单文件将得到尊重并正确编译。为什么application.scss 得到这种特殊处理而不是其他 sass 清单文件?

【问题讨论】:

  • 好问题,希望我知道答案。
  • 有什么理由不接受下面的答案?
  • 不是真的,只是因为我已经开始做其他事情了,所以我还没有测试过你的解决方案。

标签: ruby-on-rails ruby-on-rails-3.1 sass sprockets asset-pipeline


【解决方案1】:

在您的预编译列表中包含已编译的文件名:

config.assets.precompile += %w( user.css admin.css )

此外,您可能希望重命名 app/assets/stylesheets 中的原始文件以在原始文件名中包含已编译的扩展名,以便清楚发生了什么:

user.scss -> user.css.scss
admin.scss -> admin.css.scss

【讨论】:

    【解决方案2】:

    我怀疑这可能是错误。

    application 文件被视为默认项目的主文件。 .css 和 .js 结尾的默认包含在预编译列表中。

    您描述的行为(具有 .css 扩展名的清单)是正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-28
      • 2012-05-20
      • 2012-04-02
      • 2011-12-20
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 2012-03-14
      相关资源
      最近更新 更多