我最近更新了我的一个视图和网址以获取一个额外的参数,现在我已经完成了这个显示没有css或javascript的显示页面,因为静态路径是错误的。
我显然不能正确理解静态是如何服务的,但我不认为更改URL confs会改变Django寻找静态的路径。我对整个网站的所有静态都在一个地方。
urls.py
url(r'^fill/(.*)/(.*)/$', views.fill_survey, name='unique_getfile'),
url(r'^fill/(.*)', views.fill_survey, name='unique_getfile'),
这是我的观点...第一个块执行第一个url匹配,第二个块执行底部url
def fill_survey(request, unique_url, new_name="blank"):
"""
get file or redirect to error page
"""
if len(unique_url) < 50:
if unique_url == "new":
firstlast = new_name.split(" ")
c = Client.objects.get(firstname=firstlast[0], lastname=firstlast[1])
survey_url_number = generate_survey(request, c.email)
response = Survey.objects.get(number=survey_url_number['number'])
return render(request, 'survey/survey.html', {'survey': response})
else:
response = Survey.objects.get(number=unique_url)
return render(request, 'survey/survey.html', {'survey': response})
然后,呈现的页面分别具有第一个和第二个URL匹配的以下静态路径:
wwww.mysite.com/static/etc...
www.mysite.com/module_name/static/etc...
我的模板中的路径如:
<link rel="stylesheet" href="../../../static/classic/global/css/bootstrap.min.css">
为什么这些不同的网址会导致不同的静态路径?
提前致谢!
答案 0 :(得分:1)
以下是相关文档,但默认情况下,Django仅在/static/
文件夹或其子文件夹中查找静态资源。如果需要,可以在设置文件中定义静态文件目录列表。
https://docs.djangoproject.com/en/2.0/howto/static-files/
编辑:对评论的回应。
我能看到你的模板吗?另外,我会尝试将所有网址更改为/$
。
编辑:对发布的模板的回复。 我使用静态标签而不是绝对标签。即。
<link rel="stylesheet" href="{% static "/css/bootstrap-3.3.7.min.css" %}">
这样一来,如果我们弄乱模板的位置,我们就不会回去更改所有模板
一对夫妇考虑过你的HTML:
由于它不是以/
开头,而是指向当前文件夹中的文件夹。
使用/
,它指向当前网络根目录的路径。
请参阅https://www.w3schools.com/html/html_filepaths.asp
关于为什么我在/$
结束我的地址。这是一个很好的答案。
Why django urls end with a slash?
我希望我能为您提供更明确的答案,但请尝试在网址中跟踪/
以及模板中的前导/
或{% static %}
。