在djano应用程序中,在urls.py中,我有2个网址。两者都扩展'base.html'。但是,当我去网址时,其中一个不加载.css,.js文件等任何想法? Urls.py下面:
from django.conf.urls import patterns, url
urlpatterns = patterns('',
(r'^password/reset/$', 'django.contrib.auth.views.password_reset',
{'post_reset_redirect' : '/membership/password/reset/done/'}),
(r'^register/$', 'membership.views.register_user'),
)
聚苯乙烯。我复制并粘贴了“extends'base.html'等,以避免任何拼写错误。
更新 我忘了告诉你,当页面加载时,在'register'页面的源代码中似乎缺少'static /'。即使在其他页面示例'/ membership / dashboard /'中它也能正常工作。
答案 0 :(得分:2)
这些目录来自两个不同的目录'即yourdomain.com/password/reset/
和yourdomain.com/register/
。您很可能使用相对URL(取决于它们所服务的目录)来引用您的资源,因此如果您在base.html中对网址进行硬编码,那么其中至少有一个会出错......
Django可以在模板中引用静态服务的资源,例如html,javascript等,这些资源将使用正确的相对URL,具体取决于您在urls.py
中配置的内容。
e.g。取自https://docs.djangoproject.com/en/dev/howto/static-files/
{% load staticfiles %}
<img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>
<强>更新强>
您似乎依赖于访问模板中settings.py
的值来构建您的网址,默认情况下,模板无权访问。要获得访问权限,您需要从视图中向模板传递上下文(请参阅示例this question)。
django.contrib.auth.views.password_reset
可能会这样做,因此引用有效,但您自己的观点(即membership.views.register_user
)可能不会。
要在上下文中传递STATIC_URL
,请尝试views.py
:
def register_user(request, template="my_template.html"):
context = { 'STATIC_URL' : settings.STATIC_URL }
return render_to_response(template, context)
但是,构建这样的URL并不是最好的方法 - 如果可能的话,最好切换到Django认可的方式......
答案 1 :(得分:0)
(我不认为你会根据你的问题得到答案。问题不太可能与你的urls.py有关。它更有可能在你正在使用的模板。你也可以澄清你的意思&#34;没有加载.css,.js&#34;。你的意思是渲染的HTML没有它中的标签和标签?或它确实如此,但它们指向错误的东西或以其他方式不起作用?)