通常情况下,我会遇到一些情况,我认为在CSS和JavaScript文件中使用模板标签是有意义的,例如在CSS中使用{{STATIC_URL}}来访问图像。我知道实现这一目标的唯一方法是让Django提供CSS和JavaScript文件。我对这种方法很感兴趣。但在我承诺之前,我想听听专家的经验。这种方法的优点和缺点是什么? THX。
答案 0 :(得分:2)
优点:
缺点:
备选方案:
答案 1 :(得分:0)
就个人而言,我一直坚持使用Django团队的建议来制作CSS和JavaScript静态文件,由服务器直接提供,而不是通过Django提供。它不是一个问题,并简化了很多东西。一般来说,任何时候我认为我需要一个动态的CSS或JS文件,有一种方法可以重构,所以我没有。
例如:
在CSS中使用{{STATIC_URL}}来访问图像
我不确定{{ STATIC_URL }}
的变量有多大,但我发现在我的网页中使用<base>
标记可以解决很多问题。我假设这是背景图片?你能更新你的问题来举例吗?
我做的另一件事是,如果我的JavaScript需要动态数据,我会将大部分代码放在JavaScript库中作为静态文件,然后将最小的动态内容放在<script>
中标签在页面的末尾。通常我会将它全部放在一个对象中(看起来很像JSON),然后将该对象传递给一个函数。想想看,你可以把所有动态的东西,在你的视图函数中用它来制作一个字典,把它编码成JSON,然后通过上下文传递它。然后您的页面模板看起来像:
<html><head>
...
<script src="{{ STATIC_URL }}/js/foo.js"></script>
...
</head><body>
...
<script>
foo_main({{ foo_params_json|safe }});
</script>
</body></html>
这使得 lot 更容易重用此代码。