ruby-on-rails – 资产管道缓存CSS?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 资产管道缓存CSS?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Rails 3.1应用程序.我已经创建了一个application.css.scss.erb文件. .erb是最后的,因为我想从配置文件中加载一个变量作为css中的颜色变量:
$highlight1: #<%= COLOR.highlight1 %>;
$highlight2: #<%= COLOR.highlight2 %>;

一切工作正常,但我遇到的问题是,每当我更改COLOR.highlight1中的值时,它不会反映更改,直到我进入我的css文件并更改某些东西(我通常添加一些空格并保存) .当我看到这个变化的时候.显然,rails正在查看文件是否已更改以更新更改.

有什么办法,至少在开发过程中,这可以关闭,我可以看到更改,而不必修改css文件

对我的技术的任何批评/意见也是受欢迎的

解决方法

Sprockets depend_on指令用于声明这些依赖关系.所以在你的css.scss.erb文件的顶部,与其他指令(需要和朋友),放置如下:
//= depend_on "/path/to/colors.rb"

然后当/path/to/colors.rb文件更改时,它将强制css更新.

不幸的是,我从来没有得到这样一个相对路径到一个资源目录(javascripts / stylesheets / images)之外的文件,所以可能有一些方式Sprockets解决阻止这个的路径,否则我是缺少一些东西这可以让您选择指定绝对路径,这几乎肯定不会在所有应用程序环境中运行,或将常量文件放入资产目录(例如app / assets / stylesheets / colors.rb).

作为参考,这里是来自链轮(2.0.3)源的dependency_on指令的文档,位于链轮/ directive_processor.rb

# Allows you to state a dependency on a file without
  # including it.
  #
  # This is used for caching purposes. Any changes made to
  # the dependency file will invalidate the cache of the
  # source file.
  #
  # This is useful if you are using ERB and File.read to pull
  # in contents from another file.
  #
  #     //= depend_on "foo.png"
  #

如果有人知道一种方式来指定与其他地方相似的路径,如配置/初始化器或某些东西,请让我知道!

原文链接:https://www.f2er.com/ruby/271634.html

猜你在找的Ruby相关文章