Django url /页面显示开发服务器但不显示apache服务器

时间:2017-12-29 07:14:03

标签: python django apache

我正在处理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>

2 个答案:

答案 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>