基于JHipster的React JS项目如何正确提供无装饰的app-ads.txt静态文件
JHipster React 栈实现根路径纯文本访问app-ads.txt的方案
原有实现失效的核心原因
- 带
.txt后缀的/app-ads.txt路径请求,会被JHipster默认的前置安全拦截识别为非常规API/路由请求,直接抛出「Your request cannot be processed」错误,根本不会进入React路由的渲染流程 - 去掉后缀的路径虽然能绕过校验,但所有匹配到React路由的组件,都会被全局布局组件嵌套在带公共页头、页脚的页面外壳中,无法单独跳过公共UI组件加载
正确实现步骤
- 放置静态文件到指定目录
- 在前端工程的
src/main/webapp根目录下新建app-ads.txt文件,写入Admob要求的纯文本内容:google.com, pub-24159654231069759, DIRECT, f08c47asdec0942fa0 - 该目录是JHipster默认的静态资源输出根目录,项目构建打包时会将目录下的所有文件直接映射到站点根路径,无需经过React路由渲染
- 在前端工程的
- 调整安全拦截规则
- 找到JHipster默认的Spring Security配置类,在公开资源放行列表中添加
/app-ads.txt的匹配规则,确保该路径的匿名请求不会被认证流程拦截,参考配置片段:
.antMatchers("/app-ads.txt").permitAll() - 找到JHipster默认的Spring Security配置类,在公开资源放行列表中添加
- 清理无效的路由配置
- 移除之前在路由Switch块中新增的
/app-ads、/app-ads.txt相关路由配置,不需要让React接管该路径的请求 - 开发环境启动后,直接访问对应端口的
/app-ads.txt路径即可验证,返回内容为纯文本且无任何公共页头、页脚组件
- 移除之前在路由Switch块中新增的
内容的提问来源于stack exchange,提问作者abiieez
相关产品推荐
相关产品推荐

