在djano应用程序中,在urls.py中,我得到了两个urls。两者都扩展了'base.html‘。但是当我访问url时,其中一个不加载.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'),
)Ps。我复制和粘贴“扩展'base.html‘等,以避免任何打字。
更新我忘记告诉您,当页面加载时,在“注册”页面的源代码中,似乎缺少“静态/”。即使在其他页面中,示例‘/会员制/仪表板/’,它也能正常工作。
发布于 2014-03-18 18:46:37
这些服务来自两个不同的“目录”,即yourdomain.com/password/reset/和yourdomain.com/register/。您很可能使用相对URL引用资源(这取决于服务的目录),因此如果硬编码base.html中的URL,那么其中至少有一个是错误的.
Django有一种方法可以引用模板中静态服务的资源,如html、javascript等,这些资源将根据您在urls.py中配置的内容使用正确的相对URL。
例如摘自https://docs.djangoproject.com/en/dev/howto/static-files/
{% load staticfiles %}
<img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>更新
看起来,您依赖于在模板中访问来自settings.py的值来构建您的URL,默认情况下,模板无法访问URL。要获得访问权限,需要从视图向模板传递上下文(例如,请参见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许可的方式。
发布于 2014-03-18 18:45:25
(我不认为你会根据你的问题得到一个答案。这个问题不太可能与您的urls.py有关。它更有可能出现在您正在使用的模板中。您还可以澄清“不加载.css,.js”是什么意思。您的意思是呈现的HTML中没有和标签吗?或者它确实是,但他们指向错误的东西或其他不工作?)
https://stackoverflow.com/questions/22488245
复制相似问题