奋斗在前端的18线演员 2023-11-15 10:35 采纳率: 100%
浏览 24
已结题

react+vite打包BrowserRouter路由程序发布到服务器访问资源404

问题:react+vite打包BrowserRouter路由程序发布到服务器访问资源404

操作环境:
1.服务器阿里云
系统:Alibaba Cloud Linux 3.2104 LTS 64位
安装的宝塔

程序代码:

VITE_APP_BASE_PATH = /taste-boss/

<BrowserRouter basename={VITE_APP_BASE_PATH}>
    <SetUpRoutes />
</BrowserRouter>

vite部分代码
base: viteEnv.VITE_APP_BASE_PATH,
build: {
outDir: ["production", "staging"].includes(mode) ? "taste-boss" : "taste-boss-test",
assetsDir: "static",
manifest: true,
            
rollupOptions: {
    output: {
    chunkFileNames: "assets/chunks/[name].[hash].js",
    entryFileNames: "assets/js/[name].[hash].js",
    assetFileNames: "assets/[ext]/[name].[hash].[ext]",
                },
            },
        },

服务器站点根目录:/www/wwwroot/tp/public
单独设置了web文件放置前端代码
nginx配置代码

 location /taste-boss/ {
    root /www/wwwroot/php/tp/public/web; # 替换为你的前端应用路径
    try_files $uri $uri/ /taste-boss/index.html;
}

结果就是:http://域名/tast-boss/ 访问以后

http://域名/taste-boss/assets/chunks/vendor.c1af9757.js
Request Method:
GET
Status Code:
404 Not Found

请问到底如何进行配置或者如何操作可以解决当前这个问题(使用hash模式完全没有问题不过带有#号所以要使用BrowserRouter路由模式)

  • 写回答

10条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2023-11-15 10:53
    关注

    首先404是路径没有找到
    目前看你的问题出在nginx, 如有帮助,请点几个采纳!

    将 root /www/wwwroot/php/tp/public/web; # 替换为你的前端应用路径
    替换成如下:
    alias /www/wwwroot/php/tp/public/web;
    

    修改后,出现403问题,是被拦截访问了,看看你的文件夹有没有访问权限,设置权限命令:chmod 777 文件夹路径

    上面要是不行,换下面的试试在,将你的前端文件放入到nginx下的html文件夹里,然后用如下配置。
    默认nginx 在liunx服务器路径是:/www/server/nginx

    server {
            listen       80 ;
            server_name  xxxxx;
            
            #ssl_certificate      C:\hvit\service\ssl_nginx\xxxxxx.pem;
            #ssl_certificate_key  C:\hvit\service\ssl_nginx\xxxxxxxxxxx.key;
            ssl_ciphers HIGH:!aNULL:!MD5:!3DES;
               ssl_protocols TLSv1.2;
            ssl_prefer_server_ciphers  on;
    
            charset utf-8;
            underscores_in_headers on;
    
            location /taste-boss/{
              alias /www/server/nginx/html;
              index index.html;
            }
          
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(9条)

报告相同问题?

问题事件

  • 系统已结题 11月23日
  • 已采纳回答 11月15日
  • 创建了问题 11月15日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!