mod_wsgi的路径配置问题 - WSGIScriptAlias

时间:2011-05-26 07:08:18

标签: configuration path mod-wsgi alias

在使用此行成功加载wsgi模块后,我正在尝试使用WSGIScriptAlias配置路径:

WSGIScriptAlias / /home/patipol/RTG-Likitomi/likitomi/apache/django.wsgi

它适用于我的应用程序,但这也导致无法找到http://localhost/phpmyadmin的phpmyadmin。如果我没有挂载,请将其更改为:

WSGIScriptAlias /django /home/patipol/RTG-Likitomi/likitomi/apache/django.wsgi

Phpmyadmin重新开始工作,但我的代码中找不到许多链接,例如:

<iframe id="map" name="map" src="/inventory/" frameborder="0" style="width:100%; height:500px; margin-top:35px; margin-left:0px;" scrolling="no"></iframe>

无法找到“/ inventory /”的位置。我必须将其更改为“/ django / inventory”才能使其正常工作。问题是我的代码中有很多链接像这样指定。有没有其他方法可以通过不更改我的代码中的每个链接来解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:1)

要让它在root上挂载但仍有静态文件并且PHP仍然有效,请使用以下描述的技术:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive

而不是WSGIScriptAlias。

对于使用WSGIScriptAlias并在子URL上安装的情况,您不应该首先在模板中对绝对URL进行硬编码。相反,您应该使用类似'url'模板标记的内容来生成URL。这样你可以改变周围的东西,或者在不同的安装点安装应用程序,它们都会自动调整。参见:

https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#url

https://docs.djangoproject.com/en/1.3/topics/http/urls/#topics-http-reversing-url-namespaces

以及在代码中执行相同操作的“反向”功能。