波总您好,jfinal-undertow下前后端分离项目合并部署访问不到页面

前端vue项目打包后 放在 src/main/webapp 下面不能正常访问

微信截图_20190415094343.png

handler配置如下

微信截图_20190415100706.png

访问路径如下

微信截图_20190415094717.png

如果访问/rxpacs/index.html 可以正常访问,但是如果前端项目路由发生跳转,刷新页面也是一样找不到页面, 以上问题有好的解决办法么? 

评论区

JFinal

2019-04-15 11:24

jfinal 本来就不会处理静态资源,所以 UrlSkiptHandler 是多余的配置

至于为什么无法访问静态资源,先在浏览器地址栏里面手动输入 url ,确保可以访问

静态资源的访问从来都是与 jfinal 无关的,这类访问一直都是 undertow、jetty、tomcat 直接接管的

shate

2019-04-15 13:33

@JFinal 手动可以访问的,也只能手动访问index.html 后续vue router跳转的路径都访问不了

shate

2019-04-15 13:36

@JFinal 我知道一种解决办法,现在问题是如何拦截404异常,不是全局拦截,我是想根据出现404 的访问路径动态render

falost

2019-04-15 15:27

@shate 表示这种的话,如果你的 vue-router 的 mode 是 history 的话,建议你将所有404页面都返回你前端的入口文件 index.html 就可以了

shate

2019-04-15 16:16

@falost 对的我就是这么做的。但是因为我是多页面项目,所以才需要根据不同路劲出现的404定向到不同html页面,这样就需要拦截404了

falost

2019-04-15 18:12

@shate 那是否可以通过目录拦截的方式返回不同的 HTML 页面哈

lyq027

2019-09-11 09:45

@shate 你好,vue项目打包dist放到webapp,undertow你是怎么配置的呢?

shate

2019-09-19 16:18

@lyq027 我是自己建了一个controller 在controller 中全部跳转到 index.html 多层地址 必须通过controller 跳转

shate

2019-09-19 16:38

@lyq027 如果Jfinal 来个指定路径下所有url定向转发就更好。如(/rxtest/* 设置全部跳转到指定html就更方便了 )

JFinal

2019-09-19 18:05

@shate 其实可以直接访问 webapp 下面的文件,例如:
http://locahost/index/index.html

不需要配置一些东西,注意这类请求不要被 nginx 拦截

再一个,定向转发弄个 Handler 就可以了

热门反馈

扫码入社