开发者社区> 问答> 正文

tomcat做服务器时,当通过项目名访问jsp页面的时候,网页相对路径失效。

url是 localhost:8080/greenfront/
这样访问时,所有CSS文件路径如果写的是../css/XXX.CSS则找不到,而改成
<% String path = request.getContextPath(); %>
就行了,这是为啥??
是用相对路径都不行,还是我自己没配置对?
我viewsource的时候看到:无法找到localhost:8080/css/XXX.CSS。
1
我的index.jsp放在jsp文件夹下:
2
head里是这么写的:
3
相对路径,../css/htmlbasic.css从这个jsp开始找到css里的htmlbasic.css不是应该这么写么?
为什么成了localhost:8080/css/htmlbasic.css?

展开
收起
落地花开啦 2016-05-31 15:56:23 2584 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    css文件中是可以使用../之类的相对路径,因为它寻找文件的方式是从当前文件路径作为起点开始寻找
    js中是以document中的location为起点的,就是浏览器地址栏中的地址
    如果是在html文件中的,也是以document中的location为起点的
    如果是jsp之类的服务器端文件,其实最后由编译后的out写回来的内容都是html,所以最后依然是和浏览器当前的location相关的。
    所以在jsp文件中我们一般都是使用getContextPath来获取tomcat配置的Context节点的Path,就是浏览器端口后面的第一个/后的名字,然后才是服务器资源的路径,这样拼出来的就和浏览器地址栏无关了,任何地方都可以访问到的

    2019-07-17 19:22:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ECS全知道(下) 镜像与快照+块存储、安全、网运维与监控 立即下载
ECS全知道(上) 实例+计费 立即下载
云服务器可观测能力的探索与实践 立即下载