0

我正在 Roda 中构建一个非常简单的应用程序,出于某种原因,每次我保存 css 或 js 文件时,它都会编译资产并在公共资产文件夹中创建一个副本。我有大约 20 个相同的 css 和 js 文件,但每个文件都有不同的资产预编译前缀。这是代码:

require 'roda'
require_relative './app'

class App < Roda
  plugin :render
  plugin :assets, css: 'style.scss', js: 'app.js'
  compile_assets

  route do |r|
    r.assets

    r.root do
      view 'app'
    end
  end
end

应用服务器正在重新运行,我不知道这是否相关。

有任何想法吗?

4

1 回答 1

1

Assets 插件依赖 SHA 摘要来命名已编译的资产以允许子资源完整性检查。每次您对app.js文件进行更改时,摘要都会更改,因此会生成新的文件名。

您可以通过在插件方法调用中设置sri 选项来禁用它:nil

class App < Roda
  plugin :assets, css: 'style.scss', js: 'app.js', sri: nil
end

在生产中,您可能希望保持 SRI 开启。特别是如果您打算使用 CDN。

于 2018-11-01T09:56:51.540 回答