3

css/js用にEricBidelmanの/HTML5Rockscachebust.pyファイルの修正バージョンを使用しています。リンクはこちら

次のようなタイムスタンプを追加する代わりに

.css?2012-07-30

変数を-に変更しました

cachebust = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(10))

だから(例えば)

.css?6SKD39SFJ3

彼の元のバージョンも日付を削除していないようだったので、それがどのように「キャッシュコントロール」であるかはよくわかりませんが、これらの10文字を自動ストリップできれば機能すると思いました。最初に(新しいファイルの)jsファイルをターゲットにし、次にjsの場合は?(cachecontrolがすでに配置されている場合)、既存のcachecontrolを削除します

asset = re.search('\.(js")><\/script>', line)
if asset is not None:
  existing = re.search('\.(js?"', line)
  if existing is not None:
    line[i] = line.replace('.js?'STRING????'"', '.js"')
  lines[i] = line.replace('.js"></script>', '.js?%s"></script>' % cachebust)

その文字列についての考え???? する必要がありますか、またはこの方法が機能しない場合はどうなりますか?私はPythonを初めて使用するので、ここで実験しています...

4

1 に答える 1

1

次の3行を置き換えることができます。

existing = re.search('\.(js?"', line)
if existing is not None:
    line[i] = line.replace('.js?'STRING????'"', '.js"')

と:

re.sub(r'\.js\?[-0-9]{10}">',r'.js?">', line)

出力:

>>> re.sub(r'\.js\?[-0-9]{10}">',r'.js?">', '<script type="blah" src="url/to/path.js?2012-07-02">')
'<script type="blah" src="url/to/path.js?">'

[-0-9]{10}10文字の数字とダッシュを表す正規表現を使用しました。10文字を表すことができる場合は、次を使用します.{10}

于 2012-08-01T05:31:40.770 に答える