即使在添加更多行并清除缓存后,CSS也不会在JSP页面上刷新,清除Chrome上的缓存后,所有CSS页面都无法正常工作

qhhrdooz  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(110)

在我向一个已经工作的样式表添加了几行CSS之后,一切似乎都正常工作,它不会刷新和包括新行,它只会显示以前的行。
在试图清除Chrome上该高速缓存后,似乎没有一个页面加载CSS页面或我链接的任何Google字体,但当我打开一个新项目时,所有内容都加载了,我迷路了,任何帮助都将不胜感激!
我使用Intellij作为我的IDE(JSP页面,Java,Servlet,CSS)
文件结构:webapp -> pages -> html -> css (css inside html inside pages inside webapp)
我的标题:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- Style -->
    <link rel="stylesheet" href="./css/shop.css">
    <link rel="stylesheet" href="./css/base.css">

    <!-- Fonts Lato & Montserrat -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400;500;700;900&family=Montserrat:wght@300;400;500;700;900&display=swap" rel="stylesheet">
    
    <title>Store</title>
</head>
xienkqul

xienkqul1#

尝试使用版本控制:

<link rel="stylesheet" href="./css/shop.css?version=1">
<link rel="stylesheet" href="./css/base.css?version=1">

如果你在CSS中添加了新的行,那么你将其更改为:

<link rel="stylesheet" href="./css/shop.css?version=2">
<link rel="stylesheet" href="./css/base.css?version=2">

浏览器将再次加载CSS文件。
另外,你可以在你的JSP文件中的HTML Header中添加以下代码,以实现no-chache(但你必须同时执行css Versioning):

<%
    response.setHeader("Cache-Control","no-cache"); //Forces caches to obtain a new copy of the page from the origin server
    response.setHeader("Cache-Control","no-store"); //Directs caches not to store the page under any circumstance
    response.setDateHeader("Expires", 0); //Causes the proxy cache to see the page as "stale"
    response.setHeader("Pragma","no-cache"); //HTTP 1.0 backward compatibility
%>

相关问题