我已经阅读了一些与静态文件相关的文档,但无法使其工作。我正在使用计算机上的运行服务器进行测试。我的html在这个目录中:C:\mytemplates\polls\t3.html。T3.html 使用放在my_static_files下的 JS 和 CSS 文件。那么 Django 静态设置应该是什么,my_static_files应该放在哪里呢?
由于您没有确切指定,因此我将假设您的静态文件是 C:\my_static_files\
如果是这样,您的设置应如下所示:
STATIC_URL = '/static/'
STATIC_ROOT = 'C:my_static_files'
然后,在模板中,可以使用 {{STATIC_URL}} 加载静态文件:
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/your_style.css" />
<script type = "text/javascript" src = "{{STATIC_URL}}/js/your_script.js"></script>
如果将子文件夹命名为 js 和 css 不同,请相应地更改链接。如果仍然不起作用,请检查并仔细检查前导斜杠和尾随斜杠。
正如您提到的,使用 {{STATIC_URL}}不会返回任何内容,我必须添加以下内容:为了能够使用 {{STATIC_URL}},您必须将 RequestContext 传递给您的模板。在从视图返回响应时,可以通过向视图传递如下context_instance来执行此操作(即):
from django.template import RequestContext
from django.shortcuts import render_to_response
def some_view(request):
# your view code here
return render_to_response(template_name,
context,
context_instance=template.RequestContext(request) )