WEB开发 路径问题

今天在开发的过程中,妹子遇到了一个问题,开发Java WEB网页开发中的struts路径问题。
情景再现一下:
struts.xml:

<action name="Study" class="com.utopia.controller.StudyAction"
    method="study">
    <result name="success">study/success.jsp</result>
</action>

在success.jsp中要引入jquery.js文件,该文件位于UtopiaTest项目下的js文件夹中,所以,引入的路径是

<script type="text/javascript" src="../js/jquery.js"></script>

现在浏览器在执行http://localhost:8080/UtopiaTest/Study请求后,发现无法引入该js文件中。
查看浏览器报错为:http://localhost:8080/js/jquery.js 404错误,为什么这个地方解析出来的路径是这个?
其实如果仅仅相对于项目中的success.jsp和jquery.js的关系来讲,jquery.js是完全可以查找到的,可是在项目的实际运行中就不可以。
首先了解下浏览器和服务器的运行,虽然浏览器在请求路径当中,一般可以看出服务器是用什么语言进行编写的,如:.asp一般是.NET语言;.php是PHP语言,但是其实对浏览器来讲,服务器你是用什么语言编写,关我P事,我只负责向你发送HTTP请求,让其年后再把接收到的文本流解析完,我就继续睡觉了。而服务器也不管浏览器的,就是接收到请求,然后响应请求,把处理好的文本流发送回浏览器。所以,可以看出:浏览器是不关心服务器的项目路径的。
当我们发送http://localhost:8080/UtopiaTest/Study后,虽然我们接收到的是以study/success.jsp为模板的内容,但是对于浏览器来讲,这就是http://localhost:8080/UtopiaTest/Study的内容。浏览器在读取到../js/jquery.js后,也就根据路径找到了http://localhost:8080/js/jquery.js文件,但事实上并没有这个文件。
如何规避这一类问题呢?
1.在struts.xml里面别瞎配文件夹了,那自然而然的项目路径相当于浏览器路径了。
2.在写路径时尽量写绝对路径,而且对于jquery这种库,可以采用CDN的方式加载,既不占用流量,而且据说速度会很快。但是我调试的时候依然喜欢采用本地库的方式加载,有时候断网了也不影响继续敲代码。
3.其实这种是最正规的,大部分大型项目里一般都是采用的这种方式。就是采用基路径的方式,可以把基路径设置到项目下,然后在这个jsp当中写其他项目,都采用基路径的相对路径。其实,这个的原理就是写绝对路径么。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值