我正在处理Django 1.11,URL,
http://djangoserver:8002/dj/dev/userlogin/789
适用于开发服务器,但使用apache URL:
http://djangoserver/dj/dev/userlogin/789
它引发Page not found (404)
错误。
用于URL的正则表达式是:
url(r'^[0-9]+$', views.userlogin.login , name='login'),
正确显示页面重置。
我试过在以下帖子中发布的解决方案对我不起作用: django application works on development server but I get 404 on Apache
working on django development server but not on apache
django production server: root path
我没有使用任何虚拟主机。我的httpd.conf文件代码片段:
WSGIScriptAlias /dj /var/www/html/dev/dev/wsgi.py
WSGIDaemonProcess djangoserver python-path=/var/www/html/dev
WSGIProcessGroup djangoserver
WSGIScriptAlias /dj /var/www/html/dev/dev/wsgi.py process-group=djangoserver
<Directory /var/www/html/dev/dev >
# Options -Indexes +SymLinksIfOwnerMatch
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static/ /var/www/html/dev/dev_app/static/
<Directory /var/www/html/dev/dev_app/static/ >
Require all granted
</Directory>
答案 0 :(得分:2)
您将/dj
设置为Django应用程序的别名,这意味着您的Django应用会收到路径/dev/userlogin/789
,而不是/dj/dev/userlogin/789
。在您的开发服务器上,这是有效的路径,因此您应该将Apache配置更改为:
WSGIScriptAlias / /var/www/html/dev/dev/wsgi.py
因此/dj
仍然是应用程序解析路径的一部分。
答案 1 :(得分:0)
我做的唯一改变是在httpd.conf文件中声明WSGIScriptAlias和process-group,代码片段:
WSGIDaemonProcess djangoserver python-path=/var/www/html/dev
WSGIProcessGroup djangoserver
WSGIScriptAlias /dj /var/www/html/dev/dev/wsgi.py process-group=djangoserver
<Directory /var/www/html/dev/dev >
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static/ /var/www/html/dev/dev_app/static/
<Directory /var/www/html/dev/dev_app/static/ >
Require all granted
</Directory>