Nginx + Nuxt网站未重定向到404

r6l8ljro  于 2023-06-21  发布在  Nginx
关注(0)|答案(2)|浏览(202)

我有一个使用Laravel + Nuxt开发的网站。我使用Nginx来运行网站。在nuxt generate + nuxt start我被重定向到404,但在现场网站我得到无限加载:https://flowerqueen.ro/aiusdhiusadfisadiufh.玩了很多配置文件,并检查了堆栈上的其他答案,没有任何帮助:(
这是我的nginx配置:

map $sent_http_content_type $expires {
               default                       on;
        text/html                  epoch;
        text/css                   max;
        application/javascript     max;
        ~image/                    max;
    }
        
 server {
        # redirect all HTTP to HTTPS
        listen 80;
        expires $expires;
        index index.php index.html;
        server_name flowerqueen.ro www.flowerqueen.ro;
        
        return 301 https://flowerqueen.ro$request_uri;
      }
        
        
server {
        listen 443 ssl;
        
        server_name flowerqueen.ro www.flowerqueen.ro;
        
        #ssl    on;
        ssl_certificate    /etc/ssl/certificate.crt;
        ssl_certificate_key    /etc/ssl/private.key;
        
        index index.php index.html;
        error_page 404 /404.html;
        # expires $expires;
        
        
        
        location / {
        proxy_pass http://localhost:4000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_cache cache;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 301 302 12h;
        #               try_files $uri $uri/ /404.html;
        #        add_header X-Proxy-Cache $upstream_cache_status;
        }
        location ^~ /images {
        proxy_cache cache;
        proxy_cache_valid 200 301 302 12h;
   }
        
}

Nuxt:

ssr: true,
    target: 'static',
    server: {
      port: 4000,
      host: 'localhost',
    },
nle07wnf

nle07wnf1#

终于解决了这个问题,谷歌现在会很高兴。问题就在这里:

generate: {
     fallback: '404.html',

我有/pages目录下的页面404.vue,但这是行不通的。
404.vue更改并移动到404/index.vue,并将配置更改为:

generate: {
       fallback: '404/index.html',

为我解决了这个问题。
我也删除了所有不必要的代码从404页。
谢谢大家的帮助:)

ecbunoof

ecbunoof2#

我遇到了同样的问题,上面的解决方案都不适合我:
我通过在server { ... }块中添加error_page 404 /200.html;解决了这个问题
下面是整个nginx配置文件的内容

server {
        server_name yourdomain.com www.yourdomain.com;
        root /var/www/html/yourdomain.com;
        index index.html index.htm index.nginx-debian.html;
        error_page 404 /200.html;
        location / {
        }

}

希望这能解决其他挣扎在这个完全相同的问题!
快乐编码!:)

相关问题