我有一个简单的django应用程序我试图呕吐数字海洋。我已经配置NGINX来代理我的端口并提供静态文件。但是,当我点击任何链接转到另一个页面时,它就是我的404s。它只能正确地提供索引页面,其他一切都是404。
如果你们中的任何一个后端向导有任何其他的,那就是我现在正在做的事情,请随时在你的回复中添加。
我对NGINX很新,所以请把它弄清楚:)谢谢。
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location /static {
alias /home/rchampin/ryan_the_developer_django/static;
}
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
}
答案 0 :(得分:1)
您已明确指示nginx在非文件请求中返回404。你不需要这样做。 Django可以管理Error 404
。您只需要在模板目录中添加404.html,当有404 Not Found Error
时,Django会显示此页面。
另外,您不需要对索引页面进行硬编码,使用Django的重点是什么。 MichałKarzyński有关于如何使用Django设置Nginx的非常好的文档:
Setting up Django with Nginx, Gunicorn, virtualenv, supervisor and PostgreSQL