2014-12-08 168 views
0

我设置我的STATIC_ROOT目录在我的settings.py。 shell会在文件所在的位置打印路径。但是在/ comp/xyz上渲染模板时,静态文件不会被加载。静态文件目录django

http://127.0.0.1:8000/static/js/jquery.min.js 

这是由STATIC_URL呈现的链接。这是正确的。但没有文件。

>>> print(settings.STATIC_ROOT) 
/home/mandaro/django/comp/static/ 
>>> 

有所有我的静态文件。所以,当我在我的模板上插入{{STATIC_ROOT}} css/jquery.min.js。为什么这不起作用?任何想法?

+0

它是调试网络服务器吗?你使用staticfiles_urlpatterns来提供这些? – DRC 2014-12-08 01:45:34

+0

youp。调试网络服务器。没有staticfiles_urlpatterns。只有一个STATIC_ROOT和STATIC_URL。 – oranj33 2014-12-08 01:50:39

回答

0

你应该真的read the documentation关于服务静态文件。

反正大概必须添加这样的事情在你的网址:

from django.conf import settings 
from django.conf.urls.static import static 
from django.contrib.staticfiles.urls import staticfiles_urlpatterns 

if settings.DEBUG: 
    urlpatterns += staticfiles_urlpatterns() 
    urlpatterns += static(settings.MEDIA_URL, 
          document_root=settings.MEDIA_ROOT) 

编辑:

您的编辑后,我看到你正在使用的不是{{ STATIC_ROOT }}{{ STATIC_URL }},是一个错字?此外,我真的建议你切换到{% static %}模板标签,因为它更便于使用不同的存储。

+0

我读过是的。但我不需要media_root。我也不打算投入生产。所以我需要先学习它。容易和干净。为什么它不起作用? – oranj33 2014-12-08 01:55:09

+0

@ oranj33我应该指出,只有最后一行处理媒体文件 – DRC 2014-12-08 01:58:52

+0

是的,我看到虽然:)我欣赏它。但是这些文件不会显示的原因是什么?顺便说一句。我会试试 – oranj33 2014-12-08 02:01:10