【发布时间】:2012-07-06 21:46:38
【问题描述】:
我在我的一个模板中使用了 STATIC_URL,如果我使用一个 url,它可以正常工作,如果我使用另一个,它会失败。在这两种情况下,使用完全相同的模板运行完全相同的视图。
模板代码:
<link href="{{ STATIC_URL }}css/form.css" type="text/css" rel="stylesheet" />
<!-- rest of page... -->
查看代码:
def myform(request):
if request.method == 'POST':
form = MyForm(request.POST, request.FILES)
obj = save_form(form)
if obj:
send_confirmation_email(obj)
return redirect('done-page')
else:
form = MyForm()
return render(request, 'template.html', {'form': form,})
网址
# site urls.py
urlpatterns = patterns('',
url(r'^$', 'site.app.views.myform'),
url(r'^app/', include('site.app.urls'),
#...
)
# app urls.py
urlpatterns('site.app.views',
url(r'^$', 'myform'),
#...
)
以上是我的 django 网站的 sn-p。如果通过“mydomain.com/”(站点的索引)访问该页面,则正确呈现 STATIC_URL 并正确链接 css 文件。如果通过“mydomain.com/app/”(应用程序的索引)访问页面,则 STATIC_URL 变为空白,因此没有 css,但页面的其余部分可以正常呈现。
我的印象是,如果视图和模板相同,则 url 应该是无关紧要的。我错过了什么吗?无论使用什么 url,我必须更改什么才能让 STATIC_URL 正确呈现?
【问题讨论】:
-
两个文件的源输出完整路径是什么?一个是
/static/css/form.css,另一个是css/form.css? -
是的,就是输出。在根目录下,我得到“/static/css/form.css”,在 app/ 中得到“css/form.css”
-
您是否尝试过 Django 调试工具栏,以帮助推断发生了什么?根据您提供的信息,我认为这不应该发生-也许有一些外部因素?无论如何,这很有趣,如果你明天还没有找到任何东西,我会设置一个测试用例