前言:
前段时间开发的的一个接口是个下载Excel模板的接口,本来是想放在公司的资源服务器上面,后来听组长说正在数据量小并且文件很小的东西可以维护在自己项目中的本地资源,然而问题出现了,我是直接给前端返回一个指向静态资源的URL地址,但是我在dev环境 是dev路径 到test环境还要修改,到生产还要修改,这样每次发版每次修改都很麻烦,今天有时间来看下这个问题,想到了个思路【前端每次请求的时候 我可以直接获取到他请求的url地址信息 然后拼出来静态资源的地址 这样dev/test/生产就不用重复修改了】
废话不多说 直接上代码:
/**
* PC端模板下载
*/
@CrossOrigin(value = "*")
@GetMapping("/downloadFile")
@ApiOperation(value = "(PC)模板下载", notes = "模板下载")
@ApiResponses({@ApiResponse(code = 200, response = GenericResponse.class, message = "模板下载成功")})
public ResponseEntity<?> downloadTemplate(HttpServletRequest request, @RequestParam String productCode, @RequestParam String templateType, String codeType) {
try {
System.out.println(request.getServletPath());
String Turl=request.getServerName()+request.getServerPort();
String url = iTemplateDownloadService.downloadTemplate(productCode, templateType, codeType,Turl);
return GenericResponse.ngOk(url);
} catch (Exception e) {
return GenericResponse.ng(e.getMessage());
}
}
‘
主要是使用了HttpServletRequest 来获取前端请求的url信息:
request.getServerName() //获取域名
request.getServerPort(); //获取端口号
// 其余的你们自己测试就行 我只是举例两个简单的
拼起来就可以实现了:
看下结果:
成功了 只是少个【:】 哈哈哈 一会我去补上