Django 1.3 静态文件

0 投票
2 回答
505 浏览
提问于 2025-04-17 16:12

这就像是关于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/ 的请求,并把这些文件提供给你。

撰写回答