正确使用非愚蠢的消化资产宝石

时间:2014-02-26 04:43:14

标签: ruby-on-rails ruby ckeditor asset-pipeline

即使它是一个非常非常简单的宝石,我相信我不理解非愚蠢消化资产(https://github.com/alexspeller/non-stupid-digest-assets)背后的想法,因为它不适用于我的应用程序。

我需要在我的应用程序上使用CKEDITOR,但是rails digest正在搞乱一切。

我将此添加到config / initializers / non_digest_assets.rb:

NonStupidDigestAssets.whitelist = [/ckeditor\/.*/]

但是我的ckeditor文件仍然没有出现。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

作为信息的起点,测试是针对每个资产目录中WITHIN文件的FULL路径。

最初我想也许他的RegEx错了,但实际上似乎没问题。问题可能确实是RegEx给出的符合您的需求。要打破它,这是你给的正则表达式:

/ckeditor\/.*/

给出以下提供的文件路径:

  1. 的CKEditor / blah.js
  2. ckeditor_blah.js
  3. ckEditor.main.js
  4. CKEDITOR / main.js
  5. 在/ ckeditor.css
  6. 在/ CKEditor的/ extra.css
  7. 在/ blockeditor / base.css
  8. ckeditor5 / temp.js
  9. 这将匹配 第1,6和7行,这是因为它正在寻找包含文本的路径" ckeditor /"在他们中。 "。*"在正则表达式中实际上是多余的(我相信),因为它只是 添加字符串可以在" ckeditor /"之后包含0到无限字符。

    另外需要注意的是,这是 CASE SENSITIVE ,所以如果你的文件路径实际上是ckEditor / main.js,就像上面例子的第4行那样,它将不匹配。如果您需要RegEx不区分大小写,请使用:

    /ckeditor\/.*/i
    

    希望这可以帮助您解决问题...以下是一些补充示例,以提供更多起点:

    /^ckeditor/i
    

    这将匹配上面示例中的第1,2,3,4和8行,因为它将搜索以" ckeditor"开头的任何路径。 case-Insensitive

    /[\/]*ckeditor[\/]/i
    

    这将匹配上例中的第1,4,6和7行。它搜索可能(但不是必需)以" /"开头的任何文件路径,并包含" ckeditor /"

    /ckeditor.*[\/]/i
    

    这将匹配第1,4,6,7和8行。它实质上是说任何文件路径包含" ckeditor {除换行符之外的任何数字} / "会工作的。

答案 1 :(得分:1)

我们遇到了类似的问题,这是因为我们需要强制重新编译资产。

Mina通常会为我们处理此问题,但在这种情况下,它会跳过预编译资产,因为它没有检测到任何更改。