Назад | Перейти на главную страницу

Конфигурация Nginx, angularJS, django и phantomJS

Я успешно настроил Django, angularjs и phantomJS (для целей SEO) для совместной работы, однако у меня возникла небольшая проблема с маршрутами.

http: // something.com/?_escaped_fragment_= переписывается правильно, и я получаю визуализированный снапшоп моей страницы (обслуживаемый phantomJS), однако http: // something.com/news/?_escaped_fragment_= не работает, и я получаю 404 не обнаружена ошибка.

Без части _escaped_fragment_ оба сайта обнаруживаются и отображаются правильно.

Вот моя конфигурация nginx:

server {
 listen 80;
 server_name something.com;
 location = /favicon.ico { access_log off; log_not_found off; }
 location /static/ {
    root /home/folder/project;
 }
 root /home/folder/project/frontend/;
 index index.html;

 if ($args ~ _escaped_fragment_) {
    rewrite ^ /snapshot$uri;
 }

 location ~ ^/snapshot(.*) {
    rewrite ^/snapshot(.*)$ $1 break;
    # I commented out this line to test why PhantomJS wasn't rendering pages
    # such as /news correctly
    #proxy_pass http://something.com:8888;
    proxy_set_header Host $host;
    proxy_connect_timeout 60s;

 }

 location / {
     #proxy_set_header Host $http_host;
     #proxy_set_header X-Real-IP $remote_addr;
     #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     #proxy_set_header X-Forwarded-Proto $scheme;
     #proxy_pass http://unix:/home/folder/project/project.sock;
     try_files $uri $uri/ /index.html;
    }

 location /admin/ {
     proxy_set_header Host $http_host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
     proxy_pass http://unix:/home/folder/project/project.sock;
 }

}

Что мне не хватает?

РЕДАКТИРОВАТЬ: в основном проблема в том, что URL-адрес запроса, проходящий через phantomJS, имеет форму http: // something.comnews (обратите внимание на отсутствие /)

Что ж, похоже, измените перезапись для phantomJS на это:

rewrite ^/snapshot(.*)$ /$1 break;

сделали свое дело.