Django:站点范围的URL前缀

时间:2010-05-24 15:47:28

标签: django django-urls

我已经构建了一个Django站点,它将在它生存时存在于根目录中。现在它在IP地址上运行良好。出于测试目的,客户端已指向其中的代理URL,但URL中包含/ folder / path,因此没有任何URL模式匹配。我把(/ folder / path)?所有的url模式,所以他们现在响应,但所有链接都被破坏,因为我使用{%url%}标记,而url模式将匹配可选路径,他们不包括在该标记中。

显然,我可以硬编码/文件夹/路径到我的所有网址(好吧,进入所有网址包括),直到测试完成,但是有更好的方法吗?

3 个答案:

答案 0 :(得分:5)

通过在Apache配置中正确设置WSGIScriptAlias(假设您正在使用mod_wsgi,您应该这样做),可以在部署应用程序时对此进行管理。这将传递给Django,然后Django会自动为所有URL反向查找添加正确值。您不应该对前缀进行任何手动操作。

答案 1 :(得分:1)

对于这个purpouse,我在settings.py中使用URL_PREFIX并将其添加到urls.py中的每个include中。我还在MEDIA_URL的开头添加它,以便所有images / css / js链接起作用。但我还想听听一些更棘手的解决方案?

答案 2 :(得分:0)

如果WSGIScriptAlias不起作用或由于某种原因无法设置它,请记住urlconf中的include()函数会将前缀添加到所有URL。你可以创建一个urlconf,其中包含你当前的root urlconf并将其挂载到前缀,然后将settings.py文件指向该urlconf。

免责声明:我自己没试过,但它应该有用。