Django的条件URL模式

时间:2013-12-22 04:42:35

标签: django url django-middleware

我有一个问题,我必须将两个部分相同格式的网址发送到不同的视图。

例如。 “domain / land / one-brush”将转到views.land(request,id),其中id是“one-brush”

类似domain / land / one-brush / include / images / dot.jpg将通过自定义视图或django静态服务静态提供..我更喜欢静态服务。

我想到的一件事就是写两个url模式一个用于土地//和另一个用于土地//任何/将要/做。首先将重定向到自定义网址,第二个将静态提供..

任何更好的方式都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

了解django如何使用django staticfiles app处理静态文件,请注意静态文件应放在与项目中其他文件完全不同的目录中

STATICFILES_DIRS = (
    "/home/special.polls.com/polls/static",
    "/home/polls.com/polls/static",
    "/opt/webfiles/common",
)

在现实世界的部署中,django不应该提供静态文件,这项工作最好通过apache / nginx等完成,甚至更好地通过某些cdn,如amazon的/ rackspace / google存储等。

分离静态文件通常是通过使用django pipline之类的工具来实现的,这些工具也可以帮助您解决文件,拉链等问题。

无论如何,如果您仍想提供一些以相同路径开头的网址,请记住django会尝试在列表中找到第一个匹配,这意味着您要放置:

domain/land/one-brush/include/images/

之前:

domain/land/one-brush/