广州工商学院门户网站北京西站24小时人工服务电话

张小明 2026/1/12 21:40:50
广州工商学院门户网站,北京西站24小时人工服务电话,网络设计专业工资,小型公司局域网怎么建立#xff09;一、Spring Boot 默认能访问哪些静态资源#xff1f;二、本地保存的文件#xff0c;为什么不能通过 IP 访问#xff1f;1. 本地测试用#xff1a;把文件存到默认静态目录2. 生产通用#xff1a;配置外部路径映射三、暴露静态目录#xff0c;会泄露项目源代码…一、Spring Boot 默认能访问哪些静态资源二、本地保存的文件为什么不能通过 IP 访问1. 本地测试用把文件存到默认静态目录2. 生产通用配置外部路径映射三、暴露静态目录会泄露项目源代码吗四、静态资源映射的安全注意事项做 Spring Boot 开发时静态资源映射这块真的踩了不少坑。刚开始总搞不懂为什么服务器上能访问的文件本地跑就报 404也担心暴露目录会泄露源代码。今天把自己遇到的问题和解决办法整理下都是实战里摸出来的经验希望能帮到和我一样的新手。一、Spring Boot 默认能访问哪些静态资源我一开始以为项目里所有文件都能通过 URL 直接访问后来才发现不是这么回事。Spring Boot 有自己默认的静态资源目录只有放在这些目录里的文件不用写接口就能直接访问。这些目录都在src/main/resources/下面按优先级从高到低排是这样的META-INF/resources/一般用不上大多是第三方插件放资源的地方resources/自定义资源目录我很少用static/最常用的我平时把图片、JS、CSS 都放这public/和 static 功能差不多优先级比 static 低一点举个例子把一张 test.png 图片放进static/目录启动项目后直接在地址栏输http://localhost:8080/test.png就能打开。要是放进static/img/里路径就改成http://localhost:8080/img/test.png就行。我认为这里有个关键点要注意这些目录都是项目内的相对路径不是本地磁盘的绝对路径。比如你把文件存在 D 盘根目录哪怕路径写对了默认也访问不到。二、本地保存的文件为什么不能通过 IP 访问先理清核心逻辑文件保存到本地 / 服务器磁盘只是「物理存储」但浏览器地址栏输入 URL 访问文件是「网络请求」—— 必须有一个「中间层」Web 服务器 / 接口把「磁盘文件路径」映射成「HTTP 可访问路径」否则浏览器根本不知道如何访问本地文件。这是我最开始踩的坑做文件上传功能时把文件保存到本地 D 盘的 upload 目录返回的 URL 是http://localhost:8080/files/test.ofd但访问就是 404。可同样的代码部署到服务器却能正常下载。后来排查才知道服务器上肯定配置了静态资源映射把磁盘路径和 HTTP 路径关联起来了而我本地只做了文件保存没加这个配置。在我看来解决这个问题有两种办法根据场景选就行。1. 本地测试用把文件存到默认静态目录如果只是本地调试不想改配置可以把文件保存到 static 目录里。这样不用额外加代码就能直接访问。代码示例大概是这样的// 获取 static 目录的绝对路径StringfileSavePathnewClassPathResource(static/).getFile().getAbsolutePath()/OFD_File/;// 上传后的文件会存在 src/main/resources/static/OFD_File/ 下面// 访问路径就是 http://localhost:8080/OFD_File/xxx.ofd不过这个方法只适合测试我们的经验是项目重新编译或者重启后static 目录里的上传文件会丢失生产环境绝对不能用。2. 生产通用配置外部路径映射这是最稳妥的方式不管本地还是服务器都能用。核心就是写个配置类把外部磁盘路径映射成 HTTP 能访问的路径。我常用的配置代码是这样的importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;ConfigurationpublicclassWebMvcConfigimplementsWebMvcConfigurer{// 本地磁盘文件保存路径建议写在配置文件里用 Value 注入privateStringexternalFilePathfile:D:/upload/;// 对外暴露的访问前缀privateStringaccessPrefix/files/;OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){// 把 /files/** 路径映射到本地 D:/upload/ 目录registry.addResourceHandler(accessPrefix**).addResourceLocations(externalFilePath);}}配置完之后文件保存到 D:/upload/OFD_File/xxx.ofd访问路径就是http://localhost:8080/files/OFD_File/xxx.ofd和服务器端的逻辑完全一致。这里有个踩坑点要提醒下路径必须以file:开头Windows 系统要用/分隔别用\不然会被转义导致映射失败。三、暴露静态目录会泄露项目源代码吗刚开始用 public、static 这些目录时我特别担心会不会把 Java 源代码暴露出去后来自己测试过才放心。我认为完全不用怕Spring Boot 只会暴露这些目录里的静态文件源代码根本不会被访问到。原因很简单我们写的 Java 代码在src/main/java/目录下编译后变成 .class 文件也不在 static、public 这些目录里。浏览器访问时Spring Boot 只会找静态资源目录里的文件根本不会管 .java 或者 .class 文件。比如你在src/main/java/下写了一个 TestController.java不管用什么 URL 访问都不可能通过地址栏拿到这个文件。四、静态资源映射的安全注意事项虽然不会泄露源代码但静态资源映射还是有几个安全点要注意不然容易出问题。我们的经验是先避开这几个坑别把敏感文件放进静态目录比如数据库密码、接口密钥这些要是放进 public 或者 static 里别人就能直接下载。敏感文件一定要远离这些目录配置信息最好加密存储。外部路径映射别太大范围别直接映射整个 D 盘或者 C 盘比如只映射 D:/upload/别写 file:D:/。可以加个路径校验确保访问的文件都在允许的目录里。限制上传文件类型别让用户随便上传文件尤其是 .jsp、.php 这类可执行文件万一被上传到静态目录可能会执行恶意代码。只允许业务需要的格式比如 .ofd、.pdf、.jpg 。别开启目录浏览Spring Boot 默认是关闭目录浏览的别手动开启。要是开启了别人就能看到你静态目录里的所有文件结构风险很高。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

国建设银行e路通网站申广告投放价目表

第一章:Open-AutoGLM 账单分类统计在现代自动化财务处理系统中,账单分类是核心环节之一。Open-AutoGLM 作为一款基于开源大语言模型的智能账务处理工具,能够高效识别并归类原始账单数据。其核心机制依赖于语义理解与规则引擎的双重驱动&#…

张小明 2026/1/8 23:19:10 网站建设

看汽车哪个网站好怎么浏览英文网站

Java 后端如何高效对接 Python 微调大模型?四种数据交互方案全解析(含实战代码) 关键词:Java、Python、大模型微调、LLM、REST API、gRPC、消息队列、AI 工程化、FastAPI、Spring Boot 引言:当企业级后端遇上 AI 模型&…

张小明 2026/1/7 15:38:01 网站建设

马鞍山网站建设推广建设部网站安全事故

从零开始搭建第一个CCS20工程:手把手带你点亮F28379D的LED 你有没有过这样的经历?下载完TI最新的Code Composer Studio(简称CCS),双击打开,面对一片深色界面和十几个弹窗选项,突然不知道下一步该…

张小明 2026/1/7 17:09:30 网站建设

wordpress音乐网站外贸软件排行榜前十名

Windows平台快速搭建RTMP流媒体服务器实战指南 【免费下载链接】nginx-rtmp-win32 Nginx-rtmp-module Windows builds. 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-win32 在数字化媒体时代,企业直播、在线教育、游戏直播等场景对实时流媒体服…

张小明 2026/1/7 16:48:40 网站建设

网站后台统计怎么启动啊如何选择企业网站建设公司

AWK编程:控制流语句与内置函数详解 1. AWK控制流语句 在AWK编程中,控制流语句对于程序的逻辑执行至关重要。下面将详细介绍几种常见的控制流语句及其用法。 1.1 循环语句 for循环示例 : total=0; for ( i=2; i <=NF; i++ ) {total = total + $i; } print "Stu…

张小明 2026/1/8 10:15:30 网站建设

环境没有tomcat怎么演示自己做的网站app运营策划

Kodi字幕库插件完整指南&#xff1a;三步实现自动字幕匹配 【免费下载链接】zimuku_for_kodi Kodi 插件&#xff0c;用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还在为Kodi观影时找不到合适字幕而烦恼吗&#xff1f;Ko…

张小明 2026/1/7 18:36:51 网站建设