无法通过 web 访问 jar 包中的一个 0 字节的文件

2022-02-25 13:39:45 +08:00
 dcsuibian

无法访问 jar 包中的一个 0 字节的文件

我目前正在做一个小型 web 项目。因为项目比较简单,所以用不上 nginx ,而是把前端生成的文件直接放到 /src/main/resources/static 下。

开发模式用 IDE 运行项目时没有什么问题,但在打包后用java -jar 后会发现前端有一个 chunk 访问不到:

然而在生成的 jar 包中,这个chunk-6800bed8.432245a1.css文件是有的,而且和其它 css 文件一样放在BOOT-INF/classes/static/css目录下:

其它的 css 访问完全没有问题,但这个就不行。发现的唯一区别就是它的大小是 0B ,也就是空的,怀疑 Spring Boot 在生产模式下对空文件做一些处理。但不确定也不知道怎么解决,所以来问问,请大佬解答。

附加信息:

1 、Java:openjdk 11.0.12 。Spring Boot:2.5.3

2 、前后端分离,前台 vue2 全家桶。空的 chunk 文件确实不应该产生,但我认为即使产生了,Spring Boot 也应该帮我返回回去,最主要是打包后行为不一致。

3 、前台路由的配合方式是用 ErrorPages ,除了状态码不对外,效果上应该没问题。

对比

通过 IDE 运行:

其它文件正常访问:

此文件也能正常访问(只不过是空的):

java -jar 运行:

其它文件仍能正常访问:

此文件无法正常访问(返回了 ErrorPage ):

1236 次点击
所在节点    Java
2 条回复
cslive
2022-02-25 13:52:55 +08:00
有可能打包之后文件损坏
dcsuibian
2022-02-25 13:57:00 +08:00
@cslive 重新打包过几次,maven 3.8.1 ,mvnw 也试过。应该不是损坏,最主要是 jar 包确实里有这个文件,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/836379

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX