nginx 部署next编译的项目,解决403问题

  • next.confg.mjs
    注意打包非单文件,nginx配置有区别
/** @type {import('next').NextConfig} */
const nextConfig = {
    output: 'export',
    experimental: {
        missingSuspenseWithCSRBailout: false,
    },
    eslint: {
        ignoreDuringBuilds: true,
    },
    typescript: {
        ignoreBuildErrors: true,
    },
    images: {
        unoptimized: true,
    },
    webpack: (config) => {
        config.module.rules.push({
            test: /(?<!\.next\/static).*\.txt$/, // 排除.next/static目录外的txt文件
            use: 'null-loader'
        });
        return config;
    },
    // 新增代理配置
    async rewrites() {
        if (process.env.NODE_ENV === 'development') {
            return {
                fallback: [
                    {
                        source: '/apiservice/:path*',
                        destination: 'http://127.0.0.1:1004/:path*', // 你的后端地址
                    },
                ],
            };
        }
        return [];
    }
}
export default nextConfig

  • next 打包后目录


    image.png
  • nginx配置
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        # next 配置
        try_files $uri $uri.html /$uri /index.html;
        # vue 配置
        # try_files $uri $uri/ /index.html;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容