我正在使用jsp / jstl / spring动态生成css和js。如何将此结果放置在头部的链接标签中。不在头部的脚本标签中


问题内容

我在jsp中生成css,输出为:

<style type="text/css">
    body{background: #ffffff url('<c:url value='/resources/images/logo/logo_small.png'/>') no-repeat scroll center center}
</style>

现在,我使用以下命令在jsp中调用此代码:

<%@include file="/WEB-INF/common/css/sitemap_common.jsp" %>
<%@include file="/WEB-INF/common/css/index.jsp" %>

它可以工作,并且输出是这样的:

<head>
<style type="text/css">
    body{background: #ffffff url('<c:url value='/resources/images/logo/logo_small.png'/>') no-repeat scroll center center}
</style>
</head>

但是我需要的是

<head>
<link rel="stylesheet" href="/css/mycss.css" type="text/css">
</head>

这是一个已完成的项目,具有100的CSS生成jsp。我需要更新以获得更好的性能。链接标记将在浏览器中被捕获。但是脚本标签会每次加载。


问题答案:

我做到了。

我创建了一个新路由/ resource / css | js,我使用了内部资源视图解析器-(文件夹)。

我的链接网址像 /resource/css/qtn/page1.css 一样。

在控制器/ resources / {中, 键入 } / { page } .css。

在这里,我得到 类型页面 值,并在我的 动态jsp 页面中使用它来获得结果。

为了安全起见,我 检查了网址 是否来自我自己的页面。

提示:

使用 内部资源视图解析器 时, 将页面值直接传递到资源url 时将引发错误,因为有时页面url将为 / page1 / block1,
因此我们的控制器将引发错误。

为了解决这个问题,我将页面值传递为 /resource/css/qtn/page1.css?sub=${page}

在controller中,我们可以轻松地获取此 值并将其作为 模型 发送到我们的动态jsp 。