2016-05-28 3 views
1

У меня есть простое приложение django im, пытающееся выбросить на цифровой океан. Я настроил NGINX для проксирования моего порта и обслуживания статических файлов. Однако, когда я нажимаю на любую ссылку, чтобы перейти на другую страницу, это на мне 404s. Он служит только для индексной страницы, все остальное - 404.Django только обслуживает индексную страницу, 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

Вы явно указали nginx на возврат 404 на запросы без файлов. Вам не нужно это делать. Django может управлять Error 404 s. Вам нужно только добавить 404.html в каталог шаблонов, и Django будет показывать эту страницу, когда есть 404 Not Found Error.

Кроме того, вам не нужно жестко кодировать вашу индексную страницу, в чем смысл использования Django. Михал Karzyński имеет очень хорошую документацию о том, как настроить Nginx с Django:

Setting up Django with Nginx, Gunicorn, virtualenv, supervisor and PostgreSQL

+0

Спасибо так много! – Ryan

Смежные вопросы