2

jsファイルとcssファイルを1つのファイルにパッケージ化するためにスプロケット付きの仲介者を使用しています。これは正常に機能します。しかし、仲介業者のスプロケットから指紋機能を有効にできるかどうか疑問に思いました。

all.jsたとえば、すべてがコンパイルされる私のファイルは、名前がに変更されall-4e17d33ff76d744900c2691a71ed83e4.jsます。

これが画像で可能であれば、それも素晴らしいことです。

4

2 に答える 2

7

使用する

activate :asset_hash

Middleman構成(キャッシュ可能性の向上)で。

(両方ではなく、どちらか :asset_hashを 使用することをお勧めします:cache_buster。)

于 2012-12-10T21:28:12.610 に答える
-1

このためのすぐに使えるソリューションは見つかりませんでしたが、独自のソリューションを作成しました。config.rb私はafter_buildフックを実行しています。最善の方法ではありませんが、機能します。

after_build do
  require 'fileutils'
  delete_except "build/javascripts/", "all.js"
  delete_except "build/stylesheets/", "all.css"

  require 'digest/sha1'
  sha1 = Digest::SHA1.hexdigest Time.now.getutc.to_i.to_s
  allJS = "all-" + sha1 + ".js"
  allCSS = "all-" + sha1 + ".css"
  File.rename("build/javascripts/all.js", "build/javascripts/" + allJS)
  File.rename("build/stylesheets/all.css", "build/stylesheets/" + allCSS)

  index_file = "build/index.html"
  html = File.read(index_file)
  html = html.gsub(/all\.js/, allJS)
  html = html.gsub(/all\.css/, allCSS)

  File.open(index_file, "w") { |file| file.puts html }
end

私は次のことをしています:

  • 不要な生成された.jsおよび.cssファイルを削除します
  • 時間に基づいてsha1ハッシュを生成する(私にとってはそれで十分です)
  • ファイルにハッシュを追加する
  • index.html新しいファイル名でを更新する
于 2012-11-21T08:26:10.710 に答える