我正在使用 Tornado 来提供使用多个 JavaScript 文件的 HTTP 文件,如下所示:
<script src="static/js/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="static/js/stream.js" type="text/javascript"></script>
<script src="static/js/d3.min.js"></script>
<script src="static/js/d3.slider.js"></script>
不幸的是,当我更改这些文件时,它没有意识到它们已经更改并继续以 304 响应进行响应。我尝试通过禁用缓存来停止这些响应,但这没有用。
我应该在 Tornado 中设置一些其他设置吗?这是我应该报告的错误吗?
请您参考如下方法:
使用RequestHandler.static_url .它将返回一个版本化的 url(默认附加 ?v=),这允许无限期地缓存静态文件。
启用它的步骤:
在您的设置中定义
static_path,这是提供静态文件的目录:settings = { 'static_path': '/var/www/static/', # other settings }为您的应用程序提供此设置:
app = tornado.web.Application(settings=settings, **kwargs)在模板中使用
static_url:<script src="{{ static_url('js/jquery-1.11.0.min.js') }}" type="text/javascript"></script> <script src="{{ static_url('js/stream.js') }}" type="text/javascript"></script> <script src="{{ static_url('js/d3.min.js') }}"></script> <script src="{{ static_url('js/d3.slider.js') }}"></script
输出将类似于(检查那些 ?v=hash)
<script src="/static/js/jquery-1.11.0.min.js?v=12d" type="text/javascript"></script>
<script src="/static/js/stream.js?v=34a" type="text/javascript"></script>
<script src="/static/js/d3.min.js?v=df3"></script>
<script src="/static/js/d3.slider.js?v=ad1"></script
