我有一个正在构建并部署到 gae 的 j2ee 应用程序,由于某种原因,当我的 url 末尾有一个尾部斜杠时,CSS 不会加载。
例如:
mysite.com/account
完美运行
但是
mysite.com/account/
加载没有 CSS 的页面
知道我能做些什么来解决这个问题吗?
CSS 样式表:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="/css/rrstyles.css" rel="stylesheet">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/grayscale.css" rel="stylesheet">
<link href="font-awesome-4.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="http://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet" type="text/css">
<link href="http://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<title>My app</title>
</head>
我将此 header 作为单独的 jsp 包括在内,但是当我转到/account 而不是/account/时出于某种原因它会起作用。我不明白怎么会这样。
最佳答案
大多数 CSS 链接都有相对 URL。这意味着它们将被解释为相对于调用页面 URL 的目录。当调用者 URL 是 mysite.com/account
时,URL css/grayscale.css
被解释为 mysite.com/css/grayscale.css
。但是当调用者 URL 是 mysite.com/account/
时,CSS URL 被视为 mysite.com/account/css/grayscale.css
。
最简单的解决方案是在您的 URL 中使用绝对路径:
<link href="/css/grayscale.css" rel="stylesheet">
关于当 url 包含尾部斜杠时 CSS 不加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55670560/