众所周知,在通过web浏览器发出带有唯一IP或服务器名称的请求后,apache会将其默认静态主页返回给资源管理器。我使用了django和apache以及mod_wsgi来部署我的网站(即在apache web服务器上的django应用程序)。如何将处理路由到views.py中定义的django映射规则,以便在向该服务器运行apache发出请求时动态生成该网站的主页(即索引页)?提前致谢!如何让django渲染默认的主页而不是apache
我加在Apache主 '的httpd.conf' 以下配置:
<VirtualHost 127.0.0.1:80>
ServerName 127.0.0.1
ServerAlias example.com
ServerAdmin [email protected]
DocumentRoot /usr/local/www/documents
Alias /robots.txt /usr/local/www/documents/robots.txt
Alias /favicon.ico /usr/local/www/documents/favicon.ico
Alias /media/ /usr/local/www/documents/media/
<Directory /usr/local/www/documents>
Require all granted
</Directory>
WSGIDaemonProcess 127.0.0.1 processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup 127.0.0.1
WSGIScriptAlias//usr/local/www/wsgi-scripts/myapp.wsgi
<Directory /usr/local/www/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
代码在myapp.wsgi:
def application(environ, start_response):
status = '200 OK'
output = b'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
然后我发出127.0.0.1,资源管理器显示的“它工作!',这是apache生成的默认页面,而不是我希望的'Hello world!'。在这种情况下返回。我只是希望在发布IP或站点地址时,将生成默认主页的工作直接委托给django进行动态处理,而不是由Apache返回静态index.html。虽然我配置了WSGIScriptAlias//usr/local/www/wsgi-scripts/myapp.wsgi
,但这似乎仍然不起作用。
不,它不*已知*。除非特意提出,否则它不会提供“默认静态主页”。你是如何在第一个地方配置mod_wsgi的? –
正如@DanielRoseman所要求的,提供您正在使用的配置。如果您已经添加了'WSGIScriptAlias// some/path/to/wsgi.py''和其他适当的配置以在适当的位置启用对该资源的访问,那么应该导致WSGI应用程序接管对该站点根目录的请求。如果不是,那么您可能已经虚拟了虚拟主机配置。 –
@GrahamDumpleton提供了配置和必要的信息。 –