【问题标题】:How to automatically compile scss into css with assets pipeline in Rails 3.1?如何在 Rails 3.1 中使用资产管道自动将 scss 编译成 css?
【发布时间】:2011-11-20 00:32:17
【问题描述】:

新的 Rails 3.1 资产管道让我很困惑。在带有 sass gem 的 rails 3.0.x 中,当我编辑 .scss 文件时,我的全局 css 文件得到了更新。但是在 Rails 3.1 中,这不再起作用了。每当我修改 .scss 文件时,似乎我必须运行 rake 任务来更新我的 css 文件。我觉得我对新资产管道有些误解,但我不知道它是什么。有人可以为这个问题提供解决方案或解释吗?谢谢你。

【问题讨论】:

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


    【解决方案1】:

    对我来说,这个问题很容易解决。 我简单地从资产/样式表中删除了所有预编译的 *.css 文件并保留所有 *.scss 文件。 Rails 可以直接与 *.scss 配合使用,无需预编译。

    【讨论】:

      【解决方案2】:

      Sass / SCSS 已内置此功能,因此您无需进行 ERB 预处理。

      image-url("image.png")
      

      http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

      【讨论】:

        【解决方案3】:

        这有两个可能的原因。我假设您处于开发模式,并且所有 gem 都已加载。

        1.配置

        在开发模式下,文件会按需编译并缓存,直到进行任何更改。您必须在正确的文件中设置新的 3.1 配置选项,否则这可能无法按预期工作。

        查看upgrading 上的 Rails 指南部分。

        2。扩展

        另一个是以正确的顺序获取扩展。对于 scss,将是 file.css.scss。这告诉 Sprockets 首先将文件解析为 scss,并且具有 css 扩展名。如果最后有 .erb - file.css.scss.erb - 则首先处理 erb,然后处理 scss。

        升级应用有点棘手,因为很多事情都发生了变化。 asset pipeline guide 有很多有用的信息和建议。

        【讨论】:

        • 我想说我已经按照指南中的步骤进行操作,但我仍然需要编译开发中的资产才能使 CSS 的更改生效。任何帮助将不胜感激。
        • 检查配置文件中的设置是否与资产管道指南中的设置相匹配。然后在 dev 上公开删除资产目录,你应该很高兴。
        猜你喜欢
        • 2011-11-14
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 2012-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多