gpt4 book ai didi

java - 当我使用 layout.vm 时如何以速度包含额外的静态文件(css,js)?

转载 作者:行者123 更新时间:2023-12-04 18:00:45 24 4
gpt4 key购买 nike

我有一个这样的 layout.vm

<html> 
<head>
<title>$!page_title</title>
<link href="path/to/css.css">
</head>
<body>
$screen_content
<script src="path/to/js.js"></script>
</body>
</html>

这里有一个 user.vm 需要用 layout.vm 渲染

#set($page_title="User") 
<div>hello, user.vm</div>

但是 user.vm 需要更多的 js/css 文件我希望渲染结果会像这样

<html>
<head>
<title>User</title>
<link href="path/to/css.css">
<link href="path/to/user.css">
</head>
<body>
<div>hello, user.vm</div>
<script src="path/to/js.js"></script>
<script src="path/to/user.js"></script>
</body>
</html>

我该怎么办?

最佳答案

user.vm 中声明另一个变量:

#set($isUser = true)

现在编辑 layout.vm。有两种选择。如果您只想使用一个样式表,请像这样切换它们:

<head>
<title>$!page_title</title>
#if($isUser)
<link rel="stylesheet" href="path/to/user.css">
#else
<link rel="stylesheet" href="path/to/css.css">
#end
</head>

或者像这样覆盖样式

<head>
<title>$!page_title</title>
<link rel="stylesheet" href="path/to/css.css">
#if($isUser)<link rel="stylesheet" href="path/to/user.css">#end
</head>

对您的脚本执行相同的操作。如果你把它们放在头部,你甚至可以在一张支票中完成。

注意:您可以通过检查 $!page_title 是否等于“User”来做几乎相同的事情,但这不是最好的主意,因为您重载了 var 的含义。因此,我建议使用另一个。

另请注意:此解决方案完全适用于 Velocity。如果您无论如何都在使用支持对象,您应该使用它们(通常)来声明和设置 var(s)。

在 Velocity 1.7 中测试

关于java - 当我使用 layout.vm 时如何以速度包含额外的静态文件(css,js)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35720418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com