Django 1.3 静态文件
这就像是关于Django 1.3的第十亿个静态文件问题。我已经搜索和尝试了很多方法,但似乎都没有用。任何帮助都非常感谢。我会尽量提供尽可能多的信息。
网址文件
urlpatterns = patterns('',
url(r'^projectm/statictest/$','project_management.views.statictest'),)
视图
def statictest(request):
return render_to_response('statictest.html',locals())
模板
<html><head><title>Static Load Test Page</title></head>
<body>
{% load static %}
<img src="{{ STATIC_URL }}testimage.jpg" />
</body></html>
设置
STATIC_ROOT = '/home/baz/framework/mysite/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = ('',)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
TEMPLATE_DIRS = (
"/home/baz/framework/mysite/templates"
文件
-bash-3.2$ pwd
/home/baz/framework/mysite/templates
statictest.html
-bash-3.2$ pwd
/home/baz/framework/mysite/project_management/static
-bash-3.2$ ls
testimage.jpg
我不太确定还有没有其他有用的信息。但基本上,当我访问这个测试页面并查看页面源代码时,网址指向
<img src="/static/testimage.jpg" />
然而,图片并没有加载。我在多个浏览器上也试过。也许我在某个地方漏掉了一个导入语句?
谢谢你的帮助
2 个回答
0
另外,记得在设置好‘STATIC_ROOT’之后,运行一下‘collectstatic’这个管理命令。
https://docs.djangoproject.com/en/1.4/howto/static-files/#deploying-static-files-in-a-nutshell
0
你是在用内置的 runserver
命令,还是用其他方式来运行你的 Django 应用呢?
如果你是用 runserver
,那么你遇到的问题是没有告诉 Django 去哪里找你的静态文件。你需要设置一个叫 STATIC_ROOT 的路径,这个路径就是存放你静态文件的地方。可以试着把它设置为: /home/baz/framework/mysite/project_management/static/
如果你是用其他服务器(比如在 Nginx 后面的 gunicorn),那么前端服务器需要负责处理对 /static/
的请求,并把这些文件提供给你。