我是django的新手,我正在尝试加载js文件和图像,视图和模板系统。但我有问题。开发我的配置如下。
IN SETTINGS.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'E:/GIS/recursos/js',
)
STATIC_ROOT = ''
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
URLS.py
urlpatterns = patterns('',
url(r'^prueba/', current_datetime),
)
urlpatterns += staticfiles_urlpatterns()
页面加载但不加载我看到的日志中的静态文件
[14/Apr/2011 10:55:41] "GET /prueba/ HTTP/1.1" 200 631
[14/Apr/2011 10:55:41] "GET /prueba/prueba.js HTTP/1.1" 200 631
[14/Apr/2011 10:55:41] "GET /prueba/img.jpg HTTP/1.1" 200 631
[14/Apr/2011 10:55:41] "GET /prueba/img.jpg HTTP/1.1" 200 631
提前致谢
答案 0 :(得分:2)
您的静态文件应该在/static/
而不是/prueba/
提供,因为您的日志显示...请检查您的模板。
修改强>
要检查的一些事情:
检查您的settings.py文件并查看
'django.core.context_processors.static',
在您的TEMPLATE_CONTEXT_PROCESSORS
检查DEBUG=True
检查您已安装的应用中是否有'django.contrib.staticfiles'
。
阅读django docs
以管理静态文件和context processors
作为简要回顾,背景 处理器将变量添加到 每个模板的上下文。然而, 上下文处理器需要你 渲染时使用RequestContext 模板。这会自动发生 如果您使用的是通用视图,但是在 你需要手工写的观点 显式使用RequestContext来查看 这是如何工作的,并阅读更多 详细信息,请查看Subclassing 上下文:RequestContext。
答案 1 :(得分:0)
我在使用这个新的静态文件应用程序时遇到了困难,但我现在正在使用它。您的settings.py
似乎对我很好。显然,诀窍是在您的视图中使用正确的context_instance
。在开发模式下无需使用staticfiles_urlpatterns()
。
所以这就是我在观点中添加的内容:
from django.template import RequestContext
[...]
def my_view(request):
[...]
return render_to_response("templatename.html", {'form': form},
context_instance=RequestContext(request))
或者您也可以使用render
快捷方式,其效果类似render_to_response
RequestContext
:
from django.shortcuts import render
[...]
def my_view(request):
[...]
return render(request, 'templatename.html', {'form': form})
HTH
参考:http://groups.google.com/group/pyweb-il/browse_thread/thread/957d6215e3716fa7?pli=1