Django 将所有内容放在url中的(子)路径上
我希望我的整个Django项目位于域上的(子)路径Django 将所有内容放在url中的(子)路径上,django,url,Django,Url,我希望我的整个Django项目位于域上的(子)路径foo localhost:8000/foo/admin,而不是localhost:8000/admin localhost:8000/foo/myapp/,而不是localhost:8000/myapp 我看到三个部分: 1) 更改url调度。例如,/foo/admin,应指向正确的视图 2) 模板中的正确链接(指向css、其他页面等)。例如,管理员应用程序的模板应指向/foo/static/admin/css/base.css,而不是通常
foo
localhost:8000/foo/admin
,而不是localhost:8000/admin
localhost:8000/foo/myapp/
,而不是localhost:8000/myapp
我看到三个部分: 1) 更改url调度。例如,
/foo/admin,
应指向正确的视图
2) 模板中的正确链接(指向css、其他页面等)。例如,管理员应用程序的模板应指向/foo/static/admin/css/base.css
,而不是通常的/static/admin/css/base.css
3) 所有静态内容也必须位于/foo
。e、 g.管理员应用程序的样式表应该是/foo/static/admin/css/base.css
,而不是通常的/static/admin/css/base.css
有没有一种优雅的方法可以实现这一点?只需在
/foo
上安装WSGI应用程序,然后将静态URL
和/或媒体URL
设置为yourdomain.com/foo我会尝试以下(未经测试的)方法:
在顶级url.py
文件中,有一种模式如下所示:
urlpatterns=patterns(“”,(r'^foo/”,include('main_url.py'))
然后在main\u url.py
中设置所有正常模式。在main\u url.py
中的所有内容都可以在/foo/
下访问,而不是在/
下访问
假设使用mod_python,请阅读关于在Apache配置文件中使用SetEnv设置“Django.root”的Django文档
使用该设置,您不需要将装入点添加到url.py中的模式中
您仍然需要设置静态URL和媒体URL,以包括所示的前缀
<注意> MyPython已经死亡,Django中的支持被删除并有针对性地删除。如果使用Apache,则应该考虑移动到MODYWSGI。你需要做的事情有点取决于你使用的WSGi宿主机制,而你没有说明过。这条线是从HTTPD.CONF回答的吗?“PythonHandler django.core.handlers.modpython”