加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:40:16 所属栏目:百科 来源:网络整理
导读:我正在使用Rails 3.1应用程序.我已经创建了一个application.css.scss.erb文件. .erb是最后的,因为我想从配置文件中加载一个变量作为css中的颜色变量: $highlight1: #%= COLOR.highlight1 %;$highlight2: #%= COLOR.highlight2 %; 一切工作正常,但我遇到的问
我正在使用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"
  #

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读