【问题标题】:Django template, 'include' css rather than using linkDjango 模板,“包含”css 而不是使用链接
【发布时间】:2013-02-22 05:25:21
【问题描述】:

最近我们遇到了浏览器缓存 css 文件的问题,因此当我们将代码移动到另一个 Web 服务器时,我们会得到意外和不需要的结果。 阅读了各种解决方案后,我想到 css 文件可以包含在模板中。而不是写

<link href="/static/css/parentx.css" rel="stylesheet" type="text/css">

我们可以放

<style>{% include "static/css/parent.css" %}</style>

这会将css嵌入到html中。它的额外好处是减少了为 css 文件返回服务器的次数,但缺点是根本不缓存 css 并且不允许 Web 服务器提供静态文件。但是,这些文件非常小,通常约为 12K。

我建议将此作为临时措施,因为我刚刚发现资产管理插件的存在看起来做得更好。 我从未见过使用“包含”模板命令来获取 css(和 javascript)文件,所以也许有一个我不知道的缺点?

【问题讨论】:

    标签: css django templates


    【解决方案1】:

    完全不缓存 CSS 文件会减慢页面加载速度,尽管这是不必要的。

    尽可能长时间地缓存你的 CSS,当你需要使缓存失效时,一个可靠的方法是加载另一个文件,我的意思是同一个文件有另一个名字。可能是parent1391234565.cssparent-v003.cssparent130307.cssparent-4e6ca1437f2d.css。如果您告诉浏览器下载parent-v002.css,您可以确定它们的缓存中没有parent-v003.css

    【讨论】:

    • 您还可以使用?v=&lt;some arbitrary version number&gt; 技术,这是一种更好的强制“分离”的方法。
    猜你喜欢
    • 2019-04-21
    • 2015-07-25
    • 2019-12-19
    • 2018-01-14
    • 2020-12-09
    • 2020-08-17
    • 2019-02-28
    • 2013-04-26
    • 2011-03-09
    相关资源
    最近更新 更多