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

发布于 2022-09-12 01:50:07 字数 898 浏览 19 评论 0

一个项目下同时包括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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

游魂 2022-09-19 01:50:07
location ^~ /admin {
    alias /xxx-path/admin/;
    try_files $uri $uri/ index.html =404;
}
ㄖ落Θ余辉 2022-09-19 01:50:07

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文