在同一个Django视图

时间:2018-03-29 05:09:21

标签: django static urlconf

我最近更新了我的一个视图和网址以获取一个额外的参数,现在我已经完成了这个显示没有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">

为什么这些不同的网址会导致不同的静态路径?

提前致谢!

1 个答案:

答案 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:

关于为什么我在/$结束我的地址。这是一个很好的答案。 Why django urls end with a slash?

我希望我能为您提供更明确的答案,但请尝试在网址中跟踪/以及模板中的前导/{% static %}