当WSGIScriptAlias为/PREFIX时,Django localeURL

2024-04-26 13:43:39 发布

您现在位置:Python中文网/ 问答频道 /正文

简介

我有一个关于localeURL用法的问题。 有了这样的网址,一切都很好: http://www.example.com/

  • 如果我在地址栏中输入http://www.example.com/,它会在http://www.example.com/en/中正确转换。

  • 如果我使用view change_语言环境,也可以(即changewww.example.com网站/英语/inwww.example.com网站/)。

问题

但我的应用程序使用apache作为服务器,并使用mod\wsgi。这个httpd.conf脚本包含以下行:

WSGIScriptAlias /MY_PREFIX /path/to/django/app/apache/django.wsgi

这样的url:
http://www.example.com/MY_PREFIX/

“更改”区域设置视图也出现了相同的问题。为了管理这个前缀(存储在settings.SERVER_前缀)公司名称:

^{pr2}$

有了这个自定义视图,我可以正确地更改语言,但我不确定这是否是正确的方法。在

问题

  1. 什么时候,在httpd.conf您将WSGIScriptAlias与/PREFIX(ie“/Blog”)一起使用,我们是否需要在python端使用一个变量(这里是settings.SERVER_前缀)与WSGIScriptAlias匹配?我将其用于MEDIA_URL和其他东西,但可能需要进行一些配置,以便使其“自动”工作,而不必在python端管理它

  2. 您认为此自定义视图(更改语言环境)是管理此问题的正确方法吗?还是有什么汽车制造的东西,比如1?

  3. 如果我在地址栏中输入地址(http://www.example.com/MY_PREFIX/),这并不能解决问题。如果定制是一种方式,我也会改变这一点,但我认为有更好的解决方案!


Tags: com视图语言httpwsgiprefix环境网站
2条回答

试试这个(我不确定它是否有效): ^{pr 1}$ 基本上是想让django相信没有前缀

但是您需要确保django在其HTML输出中发出正确的url。在

您不应该在设置中使用硬连接服务器前缀。站点的装载前缀在WSGI环境字典中以脚本名的形式提供。因此,从内存中可以获得请求.META.get('SCRIPT_NAME')。在

相关问题 更多 >