当url包含尾部斜杠时,CSS不会加载

时间:2014-12-15 05:33:46

标签: css google-app-engine url

我有一个j2ee应用程序我正在构建并部署到gae,出于某种原因,当我的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>

我将此标题包含为单独的jsp,但是当我转到/ account而不是/ account /出于某种原因时它会起作用。我不明白这是怎么回事。

2 个答案:

答案 0 :(得分:4)

您的大多数CSS链接都有相对的网址。这意味着它们将相对于调用页面的URL目录进行解释。如果来电者网址为mysite.com/account,则网址css/grayscale.css会被解释为mysite.com/css/grayscale.css。但是,当来电者网址为mysite.com/account/时,CSS网址会被视为mysite.com/account/css/grayscale.css

最简单的解决方案是在您的网址中使用绝对路径:

<link href="/css/grayscale.css" rel="stylesheet">

答案 1 :(得分:0)

它将100%工作

第1步

<mvc:resources location="/WEB-INF/assets/" mapping="/resources/**"></mvc:resources>

setp 2

<spring:url var="css" value="/resources/css/"/>
<spring:url var="js" value="/resources/js/"/>

<spring:url var="image" value="/resources/image/"/> 

在值

后添加斜杠

第3步

像这样添加你的样式表

<link rel="stylesheet" 
    href="${css}/common/bootstrap.min.css">