Django:除主页模板外,静态文件图像URL路径中断
Django: static file image URL paths breaks except for main page template
我正试图在开发中设置我的静态文件。我有一张图片位于polls/static/images/banner.jpg中。当我导航到127.0.0.1:8000/时,横幅会出现,但当我转到127.0.0.1:8000/2dpage时,横幅就会断裂。
我的索引(URL:127.0.0.1:8000/)模板包含:
{% include 'polls/header.html' %}
横幅的URLhttp://127.0.0.1:8000/static/images/banner.jpg
我的第二页模板还包含:
{% include 'polls/header.html' %}
但是横幅的URL更改为http://127.0.0.1:8000/2ndpage/images/banner.jpg
我的民意调查/header.html模板:
<img src="{{ STATIC_URL }}images/gcs_banner.jpg" />
urls.py
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('polls.views',
url(r'^$', 'index'),
url(r'^2ndpage/$', '2ndindex'))
views.py
def index(request):
...
return render_to_response('polls/index.html', {'latest_people_list': latest_people_list,}, context_instance = RequestContext(request))
def 2ndpage(request, people_id):
...
return render_to_response('index/detail.html', {'people': p}, context_instance = RequestContext(request))
为什么URL从..更改为/静态/。。至/第2页/。。?如何修复此问题,以便在使用{%include‘polls/header.html‘%}时始终显示横幅?
我认为在第二页中,{{ STATIC_URL }}
没有定义。因此,src最终得到images/gcs_banner.jpg
。这是一个相对url,因为它没有前缀斜杠。然后使用当前绝对url将其转换为绝对路径:/2ndpage/images/gcs_banner.jpg.
{{ STATIC_URL }}
可能是由上下文处理器设置的——至少它在我的项目中是这样工作的上下文处理器实际上是RequestContext的一个功能。当视图在没有RequestContext的情况下返回响应时,上下文处理器不会运行,例如:
from django import shortcuts
# ....
return shortcuts.render_to_response(template_name, context)
这是显式使用带有render_to_response()的RequestContext的示例:
from django import shortcuts
from django import template
# ....
return shortcuts.render_to_response(template_name, context,
context_instance=template.RequestContext(request))
也就是说,Django 1.3提供了一个更好的快捷方式,隐式使用RequestContext,render():
from django import shortcuts
# ....
return shortcuts.render(request, template_name, context)
- Grunt-connect在根目录之外提供静态文件
- 在Hapi.js中提供静态JavaScript文件不起作用
- 压缩静态HTML文件中的JS和CSS
- 调用Javascript中的Python函数,读取静态文件(Flask)
- 使用CloudFront和AmazonS3,或者其他CDN,我可以将所有类似的请求发送到一个静态文件中
- 如何在javascript中获取静态公用文件夹中的文件列表
- 在使用 Django 静态文件时动态设置映像时,只有绝对路径才能与 jquery 一起使用
- Expressjs 静态文件不起作用
- 究竟是什么'提供静态文件'意思是
- 我可以'不要在ExpressJS中使用我的静态JS文件
- 在Android Web视图中使用静态文件作为模板
- 使用react webpack文件加载器提供静态pdf
- 无法使用express加载静态文件
- 如何使用页面.js和 Apache 路由/提供静态文件
- 从静态文件加载json时出错
- 如何使用Node Express提供静态文件
- 具有来自静态json文件的路由的主干应用程序(只读)
- 如何使用Node.js正确地为私有静态文件提供服务
- Django项目中第三方静态文件的推荐目录布局是什么
- 使用静态文件加载器进行角度翻译默认语言