使用Meteor为每个模板动态加载JS/CSS

Dynamically load JS/CSS per template with Meteor

本文关键字:加载 动态 JS CSS Meteor 使用      更新时间:2023-09-26

我知道已经发布了几个这种性质的问题(即这个),但还没有找到可靠的解决方案。从表面上看,Meteor目前缺乏为每个模板动态加载/呈现不同UI JavaScript(即uilang)或CSS文件的能力。在我的应用程序中,我有一些模板需要特定的JS库和CSS,而不是其他模板。

例如:

user.html requires -> uilang.js, user_ui_code.js, userstyle.css
admin.html requires -> uilang.js, admin_ui_code.js, admin_style.css

我需要每个js/css文件来渲染/加载,这取决于请求的路由(即example.com/userexample.com/admin),例如不同的背景颜色、转换等。Meteor文档状态:

/public中的文件按原样提供给客户端。使用此选项可以存储图像等资产。例如,如果您有一个位于/public/background.png的图像,您可以将其包含在HTML中,也可以包含在CSS中,其中包含background-image:url(/background.png)。请注意,/public不是图像url的一部分。

因此,您可能会认为,将所有js/css/images资产公开,并在head中静态调用所需的文件可以解决这个问题。相反,JS(CSS)文件似乎被连接在一起,无论你在哪条路由上,它都会同时运行,从而重叠代码。我不确定我是遗漏了一些明显的东西,还是这是《流星》中的一个实际问题?

谢谢你的帮助。

Meteor还不支持延迟/按需加载资源。该功能在路线图上被称为"增量加载"。

同时,看看numtel:publicsources和numtel:privatesources,它们允许您为延迟加载资源创建捆绑包,无论是否进行身份验证。