jsファイルとcssファイルを1つのファイルにパッケージ化するためにスプロケット付きの仲介者を使用しています。これは正常に機能します。しかし、仲介業者のスプロケットから指紋機能を有効にできるかどうか疑問に思いました。
all.js
たとえば、すべてがコンパイルされる私のファイルは、名前がに変更されall-4e17d33ff76d744900c2691a71ed83e4.js
ます。
これが画像で可能であれば、それも素晴らしいことです。
使用する
activate :asset_hash
Middleman構成(キャッシュ可能性の向上)で。
(両方ではなく、どちらか :asset_hash
を 使用することをお勧めします:cache_buster
。)
このためのすぐに使えるソリューションは見つかりませんでしたが、独自のソリューションを作成しました。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
私は次のことをしています:
index.html
新しいファイル名でを更新する