2011-09-02 74 views
1

我正在开发一个在本地正常工作的Django应用程序。在生产中,应用程序将通过相对路径进行服务,例如www.example.com/app/从相对路径服务Django应用程序

我使用Apache与mod_wsgi的,我已经配置了Apache服务从相对URL应用:

WSGIScriptAlias /app /path/to/my/modwsgi.py 
WSGIDaemonProcess app display-name=app_wsgi 

不幸的是,我得到一个错误404的调试信息,虽然是很神秘的。如果我试图让www.example.com/app/myurl/,Django的说

Using the URLconf defined in apps.urls, Django tried these URL patterns, in this order: 

    ^myurl/$ 
    ... 

The current URL, myurl/, didn't match any of these. 

看来,Django的 - 正确 - 推断请求的路径是myurl/,而不是app/myurl/。但是,即使myurl/^myurl/$明显匹配,它也找不到匹配项。

我也试图添加设置

FORCE_SCRIPT_NAME = '/app' 

,但没有任何变化 - 错误消息仍然相同。

回答

1

调试信息是: - /在URL conf中尝试更多宽容的正则表达式;我能够获得一个页面。从那里我可以打印request.path,结果是app/myurl/

为了使它工作,我不得不转而把

FORCE_SCRIPT_NAME = '' 
STATIC_URL = '/app/static/' 
MEDIA_URL = '/app/media/' 
+1

你不应该需要做的是,它应该只是工作。编辑您的原始问题并添加您的WSGI脚本文件的内容。您可能已经复制了适用于Django 0.96的修正,这会让事情变得糟糕。顺便说一下,你在使用WSGIProcessGroup指令吗?如果没有,你已经建立了一个守护进程并没有使用它。去检查mod_wsgi网站的官方文档,并确保你正在关注他们,而不是一些随意的博客文章。 –

相关问题