的<script src>
(如你在浏览器地址栏中看到),而不是JSP文件的服务器端的位置是相对于当前请求的URL。需要加载脚本的是Web浏览器,而不是Web服务器。
因此,如果当前的请求网址是
http://Mywebpage.com/Open/This/Folder/Main.jsp
JS文件实际上位于
那么您需要将其引用为
<script type="text/javascript" src="/HL.js"></script>
前导斜线将使其相对于域根。
但是,如果您的Web应用程序本身不是部署在域根目录上,而是部署在上下文路径上(例如/Open
在您的(简化过的示例中)),并且JS文件实际上位于
http://Mywebpage.com/Open/HL.js
那么您需要在URL前面加上HttpServletRequest#getContextPath()
。
<script type="text/javascript" src="${pageContext.request.contextPath}/HL.js"></script>
最终结果为(在浏览器中右键单击页面,执行“ 查看源代码” 以查看它)
<script type="text/javascript" src="/Open/HL.js"></script>
根据您的更新,请注意,这不适用于TLD文件,因为它们已在服务器端解决。通常,您应该将TLD文件放在/WEB-INF
文件夹中,并通过进行引用uri="/WEB-INF/filename.tld"
。