url包含斜杠时CSS无法加载

use*_*644 5 css url google-app-engine

我有一个要构建并部署到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>
Run Code Online (Sandbox Code Playgroud)

我将此标头作为单独的jsp包含在内,但是由于某种原因,当我进入/ account而不是/ account /时,它可以工作。我不知道那怎么可能。

Bar*_*mar 6

您的大多数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">
Run Code Online (Sandbox Code Playgroud)