【发布时间】:2012-02-08 04:40:08
【问题描述】:
我正在使用 EJS 从 Nodejs 服务器呈现和提供 HTML 页面。我包含的一些部分在头部引用了脚本和样式表,但这会导致客户端对同一个文件发出多个请求(例如,如果父视图也包含该文件)
例如:
<!-- file: parent.ejs -->
<html>
<head>
<link rel="stylesheet" href="public/mystylesheet.css">
<script src="public/myscript.js">
</head>
<body>
<%- partial("partial.ejs") %>
</body>
</html>
而在局部:
<!-- file: partial.ejs -->
<html>
<head>
<link rel="stylesheet" href="public/mystylesheet.css">
<script src="public/myscript.js">
</head>
<body>
This is an EJS partial!
</body>
</html>
在这种情况下,“mystylesheet.css”被客户端加载了两次(不必要地),“myscript.js”也是如此
是否有一种简单的方法(最好使用 EJS)来确保在部分需要时包含样式表或脚本,但如果父视图已经包含资源则不包含?
【问题讨论】:
-
作为替代建议,您可以使用 javascript 来检测它,就像 html5 样板文件的人所做的那样(例如)...
<script>window.myscript.object || document.write('<script src="public/myscript.js"><\/script>')</script>(假设myscript.js写了一个 namespaced object ofmyscript到带有object的参数/属性的窗口@ -
这对脚本来说是个好主意,但是对于样式表来说问题仍然存在(除非你能想到一个可行的扩展方案)
-
好吧,如果您在同一个页面中多次需要它,它应该保持缓存......但实际上我没有一个好的解决方案,我加星标希望看到好的信息。
标签: html node.js resources partials ejs