Ошибка 404 на JS одностраничном сайте после refre sh страницы - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть nginx и JS одностраничный сайт. У меня ошибка 404 после refre sh страницы "mysite.com/user". Это страница работает при первом использовании, но после обновления страницы sh nginx возвращает ошибку 404.

[error] 30149#0: *45 open() "/var/www/users" failed (2: No such file or directory), client: , server: mysite.com, request: "GET /users HTTP/1.1", host: "mysite.com"`

Пожалуйста, помогите.

site conf

server {
    listen       80;
    server_name  mysite.com;
    root    /var/www/;

    location / {
        try_files $uri $uri/ /index.html;
 if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' '$http_origin';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';

        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain; charset=utf-8';
        add_header 'Content-Length' 0;
        return 204;
     }
     if ($request_method = 'POST') {
        add_header 'Access-Control-Allow-Origin' '$http_origin';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
     }
     if ($request_method = 'GET') {
        add_header 'Access-Control-Allow-Origin' '$http_origin';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
     }
    }

    location /static/ {
        add_header Cache-Control max-age=31536000;
    }

    location /index.html {
        add_header Cache-Control no-cache;
    }

    location /config.json {
        add_header Cache-Control no-cache;
    }

    location /api {
        proxy_pass http://backend;
    }


    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

Я не понимаю, почему это работа (

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Вам необходимо добавить:

location / {
    try_files $uri $uri/ =404;
}

Для получения дополнительной информации чек

0 голосов
/ 10 апреля 2020

Вы должны соответствовать /user URI. Используйте пользовательское местоположение или используйте location / { rewrite (.*) index.html break; }

Используйте его в конце, иначе это сломает ваше /static/ местоположение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...