JHipster+Angular项目音频播放404问题求助:同目录图片可加载
看起来你遇到的是静态资源路径配置的问题,JHipster对于Angular端的静态资源有特定的处理逻辑,咱们一步步来排查解决:
第一步:确认文件的实际存放位置
先检查你的radio.wav是否真的放在了src/main/webapp/content/radios/目录下(和成功加载的图片同路径)。另外注意文件名大小写——如果是Linux/macOS环境,Radio.wav和radio.wav会被视为不同文件,要确保路径里的拼写和实际文件完全一致。第二步:改用相对路径,避免硬编码绝对URL
你当前硬编码了http://localhost:9000/,这不仅在生产环境会失效,还可能因为Angular的资源处理逻辑导致路径错误。试试用相对路径:<audio controls> <source src="content/radios/radio.wav" type="audio/wav"> </audio>如果你的音频文件是放在
src/assets/radios/目录下(JHipster也推荐把静态资源放在assets目录),路径就改成assets/radios/radio.wav。第三步:验证Angular的资源配置
打开项目根目录下的angular.json,找到projects -> your-project-name -> architect -> build -> options -> assets数组,确保它包含了你的资源目录:"assets": [ "src/main/webapp/favicon.ico", "src/main/webapp/content", "src/main/webapp/assets" ]如果
content目录不在这个数组里,添加进去后重启开发服务器,Angular才会把该目录下的资源复制到构建输出目录。第四步:清理缓存并重启服务
浏览器缓存或者JHipster开发服务器的缓存可能导致资源找不到:- 清空浏览器的缓存(快捷键Ctrl+Shift+Delete)
- 停止当前的开发服务器,然后重新启动(比如用
./mvnw或者npm start,根据你的启动方式)
第五步:检查后端的资源访问权限
如果是带Spring Boot后端的JHipster项目,还要确认后端的安全配置没有拦截/content/radios/**路径。打开SecurityConfiguration.java,看看是否有类似这样的配置:.authorizeRequests() .antMatchers("/content/**", "/assets/**").permitAll()如果没有,添加这条规则,确保静态资源可以被匿名访问。
按照这些步骤排查后,你的音频文件应该就能正常加载了。
内容的提问来源于stack exchange,提问作者brahim belkhiria

