【vue】将vue项目打包后放入node服务端的静态资源中访问,要如何配置history模式?

一个项目下同时包括web(web页面),admin(后台管理系统),server(node服务器)。

将web项目和admin项目打包后放入node服务端的静态资源中访问。
web项目对应的是/路由下的静态资源,admin项目对应的是/admin路由下的静态资源。

nginx中的配置是这样的,实际上运行的是node服务端。

location / {
    proxy_pass http://127.0.0.1:3000;
    include nginxconfig.io/proxy.conf;
}

我在server中使用了官方推荐的connect-history-api-fallback中间件,来做

server/index.js

如下,其中history为connect-history-api-fallback中间件

app.use('/admin', history(), express.static(__dirname + '/admin')) // admin编译后静态文件托管
app.use('/', history(), express.static(__dirname + '/web')) // web编译后静态文件托管

这时候使用history模式访问web的路由(/下的路由)没用问题,访问后台管理系统(/admin路由)返回了html以及需要加载的js和css,但是就是显示We're sorry but admin doesn't work properly without JavaScript enabled. Please enable it to continue.

阅读 4.6k
2 个回答
location ^~ /admin {
    alias /xxx-path/admin/;
    try_files $uri $uri/ index.html =404;
}

你把上下两个顺序换一下?我怀疑你的 /admin 被下面的 / 覆盖掉了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题