フロントエンドのキャッシュ対策とかするアレ

Rails

1
2
3
4
# Helper

$ rails g helper asset
create app/helpers/asset_helper.rb
1
$ vim app/helpers/asset_helper.rb
1
2
3
4
5
module AssetHelper
def ts(filepath)
return filepath+"?"+Time.parse(File.stat("public/"+filepath).mtime.to_s).to_i.to_s
end
end
1
2
3
# View(使用例)

<script src="<%= ts("/path/to/xxxxx.js") %>"></script>

Django

1
$ vim webapp/templatetags/filter.py
1
2
3
4
5
6
7
8
9
10
import os.path

from django.conf import settings
from django import template

register = template.Library()

@register.filter("ts")
def ts(value):
return value+"?"+str(os.stat(settings.BASE_DIR+value).st_mtime)
1
2
3
4
5
# View(使用例)

{% load filter %} // ← 冒頭に追記

<script src="{{"/path/to/xxxxx.js"|ts}}"></script>