我正在开发一个在本地工作正常的Django应用程序。在生产中,应用程序将从相对路径提供,例如www.example.com/app/
。
我正在使用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'
但没有任何变化 - 错误信息保持不变。
答案 0 :(得分:1)
调试信息在于: - /在URL conf中尝试使用更宽松的正则表达式;我能够得到一个页面。从那里我可以打印request.path
,结果证明是app/myurl/
。
为了使其有效,我改为放
FORCE_SCRIPT_NAME = ''
STATIC_URL = '/app/static/'
MEDIA_URL = '/app/media/'