最近有点时间,临时起意学习动态web制作,将学习过程中遇到的问题记录下来,如果有错误的地方望大佬们指正。
开发环境:eclipse, tomcat v8.5 , servlet, jsp
问题:在jsp中加载css、jss文件时出现加载不成功的情况,核对文件路径以及名称并没有发现错误,并且可通过浏览器使用完整的路径直接访问css、js文件。
1、增加base属性
增加base属性主要还是解决文件路径的问题。使用jsp访问css文件的完整路径类似于http://localhost:8080/DemoName/styles.css,增加一个base属性用于动态声明访问的根路径。添加完成后js文件可以正常加载,但css可能加载不成功。对base的增加我主要参考了:https://blog.csdn.net/u013456370/article/details/59483687
以下是我添加base后代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body class="testdiv">
<h3>123456</h3>
</body>
</html>
2、指定浏览器版本
在添加完base后css文件依然不能正常加载,同时控制台显示“SEC7113: CSS因 Mime 类型不匹配而被忽略”的告警信息。
通过修改html指定浏览器版本信息去除告警信息,同时css文件正常加载。
依稀记得<!DOCTYPE>中的html是h5的缩写,所以我直接去除了html,也可以正常加载css文件。具体为什么需要修改版本我也不知道。
如果本文对你有帮助,请帮忙点个赞。