Django只提供索引页面,其他所有页面都提供404

时间:2016-05-28 17:15:25

标签: django postgresql nginx server digital-ocean

我有一个简单的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
    }

}

1 个答案:

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