spring mvc与html中处理引用js等静态文件的问题
来源:互联网 发布:抢牛牛神器软件 编辑:程序博客网 时间:2024/05/17 04:58
最近开发页面遇到一些问题,在这里记录一下。
通常,我们的html页面或jsp页面难免需要引入一些图片、js、css等文件,于是需要填写对应的文件路径,有相对路径和绝对路径两种写法,写相对路径时,如果通过controller后再返回对应的html或jsp页面时,相对路径可能会不是我们想要的,例如,在服务器端,如果某js文件路径为:/js/xx.js,html文件为/html/xx.html,并在在html中写入一下相对路径引用代码<script src="../js/jquery.min.js"></script>,会有两种结果发生,这里假设filter不拦截访问,并且配置了,如果我们直接访问路径为:http://127.0.0.1:8080/(项目名)/html/xx.html,结果很一切正常,但是当我们通过controller映射返回对应的html页面时,可能就会出错了。
例如我们的controller映射如下:
@Controller
@RequestMapping
(
"/download"
)
public
class
DownloadController {
@RequestMapping
(value=
"/develop/*"
,method=RequestMethod.GET,produces={
"text/html"
})
public
String developPage() {
return
"xx"
;
}
}
那么这个时候相对路径../js/xx.js在浏览器端解析后将为:http://127.0.0.1:8080/(项目名)/download/js/xx.js,于是悲催的事情就发生了,对应的js文件将得不到正常的引用,原因很简单,路径不对了,自然找不到,网上查找到的资料解释为:导入的js是相对当前请求的路径的,而不是相对于你在服务器文件的放置目录的。因此,正好印证了网上的解释,../js/xx.js被浏览器端解析后地址就是http://127.0.0.1:8080/(项目名)/download/js/xx.js。
那么怎么解决这个由controller引起的相对路径问题呢?
如果不经过controller映射,那么这个问题无需担心,大胆的写相对路径就是了,因为你的请求地址的目录结构和服务器的一致,如果要经过controller映射,方法如下:
假设是jsp页面,可以使用如下代码获取绝对路径地址:
<%
<span><span> String path = request.getContextPath();</span></span><span>
String basePath = request.getScheme() + <span
class
=
"string"
>
"://"
</span><span> + request.getServerName() + </span><span
class
=
"string"
>
":"
</span><span> </span></span><span>+ request.getServerPort() + path + <span
class
=
"string"
>
"/"
</span><span>; </span></span>
%>
<script type=
"text/javascript"
src=
"<%=basepath%>/js/xx.js"
></script>
如果是html代码,这也是我遇到的问题,由于接触web开发时间不太长,就悲催在这里了,因为我所有的页面都使用html+ajax的方式,因此就没有机会使用jsp的一些方法了,
- spring mvc与html中处理引用js等静态文件的问题
- spring mvc与html中处理引用js等静态文件的问题
- spring mvc与html中处理引用js等静态文件的问题
- Spring mvc中不能引入js等静态文件问题的解决方案
- spring mvc不能引入js等静态文件的解决办法
- spring mvc不能引入js等静态文件的解决办法
- spring mvc不能引入js等静态文件的解决办法
- spring mvc不能引入js等静态文件的解决办法
- spring mvc 对js,css等静态文件的访问
- Spring MVC程序中怎么得到静态资源文件css,js,图片文件的路径问题
- Spring MVC中访问静态资源(如html, js, css等)
- spring mvc 页面访问图片或者js等静态文件路径出错问题
- Spring mvc 项目中页面访问不到静态文件,如img , js , css 等
- spring mvc不能加载js/css等静态文件
- spring-MVC-03-静态文件的访问(js、图片等文件)
- Spring MVC 直接访问静态文件(html、jpg、js...)
- spring mvc 中 静态资源的处理
- spring mvc处理静态文件
- 167. Two Sum II - Input array is sorted
- postgres 安装及配置(ubuntu)
- 优化Mysql数据库的8个方法
- java 集合之Set
- AFNetWork请求Cache问题
- spring mvc与html中处理引用js等静态文件的问题
- 知乎大神关于高级ios进阶
- Windows之修改鼠标或触控板的滚轮方向
- redisUtil
- androidstudio腾讯地图集成定位绘制行走过的路线
- tjut 3508
- spring-boot-starter-logging logback配置之<configuration><logger>标签详解
- vCenter 部件关系简介 & 网络原理
- 动态链接库创建步骤