request.getContextPath() 路径正确但是资源加载不出来的解决方案

[1] 错误现象

在做项目的时候,希望路径是以服务器的根路径为基准,所以就用到了 request.getContextPath()。

在代码中是可以按”command“键+鼠标点击进入资源的,说明路径是没有问题的。但是加载页面的时候 css 文件 和 js 文件都没有起作用。

<%--
  Created by IntelliJ IDEA.
  User: hedon-
  Date: 2020-05-26
  Time: 11:23
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="UTF-8">
    <title>珞珈图书馆</title>
    <%
        pageContext.setAttribute("APP_PATH",request.getContextPath()); //以 "/"开始,不以 "/" 结束
    %>
    <!-- 引入 jQuery,要在引入 Bootstrap 之前 -->
    <script type="text/javascript" src="${APP_PATH}/static/js/jquery-1.11.3.js"></script>
    <!-- 引入 Bootstrap 的 js 文件 -->
    <script type="text/javascript" src="${APP_PATH}/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    <!-- 引入 Bootstrap 的 css 文件 -->
    <link href="${APP_PATH}/static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
    <!-- 引入自定义的 css 文件-->
    <link href="${APP_PATH}/static/css/index.css" rel="stylesheet">
</head>
</html>

image-20200526182252202

[2] 错误分析

我在网上找了很多的资料,但是都没有解决问题,于是还是决定自己瞎搞搞。

首先在打开的网页上查看源代码:
在这里插入图片描述
发现这里 {APP_PATH} 并没有得到解析。所以问题肯定就出在这里了。

这时候我突然想到 EL 表达式默认是会被忽略的,所以我就想会不会就是这个原因,所以才没有读到资源。

终于,问题确实是出现在这里。

[3] 解决方案

关闭对 EL 表达式的忽略,执行解析 EL 表达式。

重点是在 jsp 文件的前面加上:

<%@page isELIgnored="false" %>

如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<html>
<head>
    <meta charset="UTF-8">
    <title>珞珈图书馆</title>
    <%
        pageContext.setAttribute("APP_PATH",request.getContextPath()); //以 "/"开始,不以 "/" 结束
    %>
    <!-- 引入 jQuery,要在引入 Bootstrap 之前 -->
    <script type="text/javascript" src="${APP_PATH}/static/js/jquery-1.11.3.js"></script>
    <!-- 引入 Bootstrap 的 js 文件 -->
    <script type="text/javascript" src="${APP_PATH}/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    <!-- 引入 Bootstrap 的 css 文件 -->
    <link href="${APP_PATH}/static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
    <!-- 引入自定义的 css 文件-->
    <link href="${APP_PATH}/static/css/index.css" rel="stylesheet">
</head>

这样问题就解决了!

[4] 效果演示

image-20200526182755178

我们在来看看源码:

image-20200526182817029

可以发现这里 {APP_PATH} 被成功解析了。

Over~ 希望我的方法能帮助到你~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后端工程师孔乙己

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值