前几天,送给客户的代码被指了几个小问题,其中一个是样式表的路径问题。然后呢,对方提供了一个路径如“/serveices/style/A1.css",要求在<link href="">中使用这个路径。
我们在照做之后,发现样式的使用未成功,于是google一番之后,发现自己原来忽略的一个小问题。JSP的路径问题。
在JSP中不同的标签对于绝对路径的书写的要求并不一致。而这种不一致似乎是由于不同的标签的解析时机是不一样的,有的是要服务器来进行解析的,而有的呢,则是由浏览器来进行解析的。
比如<include>标签引用文件,实际下载到本地的source中并不存在这个标签,它已经在服务器端被解析替换成了被引用的文本,而它的绝对路径应该开始于应用的名称之下,即如果你的应用在服务器中的名称为app,而引用文件在app中的路径如下/serveices/style/A1.css,那么就可以写<include href="/serveices/style/A1.css"/>,即服务器来解析的路径不需要应用名。而如果换成是浏览器来解析的话,就应该加上应用名,所以css的引用路径应该是/app/serveices/style/A1.css。
再说一下编码问题,看了几个帖子,有个不成文的规定,css的编码格式应该和jsp文件的编码格式保持一致。因为没有出现问题,所以也没有实际调查一下,暂且这样吧。