静态文件是一个简单的过程 ︰
-
Django 将搜索名为
static/
的目录里面是在INSTALLED_APPS
的静态文件的任何应用程序。如果你有不依赖于任何应用程序的文件,你可以放在一个单独的目录中。此目录应添加到STATICFILES_DIRS
(一个元组) 中,所以 django 是意识到这一点。你的情况,你应该有STATICFILES_DIRS = ('/home/user/Project/template/media',)
-
添加到您的
INSTALLED_APPS
的django.contrib.staticfiles
现在,如果你要测试这与 runserver
,打开你的 urls.py
将 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
添加到顶部,和后定义了你的所有 Url,在文件的末尾添加 urlpatterns += staticfiles_urlpatterns()
您已经访问静态文件在您的问题的正确方法。其他方法是使用 {{ STATIC_URL }}
,并确保您正在发送您的答复与 RequestContext
。如果您正在使用基于类的意见,你不需要改变任何东西。对于你其他普通视图的方法,只需使用 render
的快捷方式。
STATIC_URL
和 STATIC_ROOT
派上用场时您正在部署。
-
STATIC_URL
是您的 web 服务器已与配置为指向的位置有你静态的文件系统中的 URL 前缀。这是一个 url 组件 和 必须以斜杠结束。例如/static/
-
STATIC_ROOT
这是您的系统上的目录的路径。当您准备部署时,运行collectstatic
命令和 django 将查找所有静态文件和转储他们在由STATIC_ROOT
指向的目录。你可以把这个目录中,然后把它放在您的 web 服务器配置与你DOCUMENT_ROOT
文件夹。然后,将/static/
URL 指向此文件夹中。例子是STATIC_ROOT = /home/user/project/www/
如果 Apache 配置了 /var/www/
DOCUMENT_ROOT
和你的 STATIC_URL
设置是 /static/
; 后您运行 collectstatic
,移动 /home/user/project/www/
到 /var/www/static/
文件夹中的内容。
STATICFILES_FINDERS
。此设置列出方法 django 可以使用来搜索为静态文件,当您运行collectstatic
,而你通常不修改这个根本。
MEDIA_ROOT
,MEDIA_URL
。这些设置控制的文件系统位置和那些 上传使用 django; 任何文件的 URL 前缀这些 不能STATICFILES_DIRS
相同。 您需要手动为collectstatic
处理这不会碰这些位置。 如果您在开发测试文件上传,您可以使用django.views.static.serve()
服务从MEDIA*
的文件。