我有一个部分视图,该视图用于服务器端渲染以构建HTML页面,并在前端进行部分更新,以对UI进行部分更新。因为我想在服务器端和前端都使用相同的部分视图文件,所以我正在寻找在双方之间共享此文件的最佳方法。
目前,我使用以下方法:
- 将部分视图文件放在
/public
文件夹中,该文件由Express静态中间件提供。 - 服务器应用程序从文件系统加载部分视图。
- 前端通过AJAX HTTP请求加载部分。
有更好的方法吗?
我也有类似的问题。我的解决方案是要有一条特定的路线(甚至在特殊控制器中,为了分开关注点(服务Ajax请求。
控制器正在从视图目录提供文件。
如果您想交付,例如来自应用程序/viewdDir/partialsdir目录的文件您要使用的URL,例如:
http://myhost.com/partials/my-partial
然后控制器可以响应:
router.get('/partials/:partialName', function(req, res, next) {
res.sendfile(`viewsDir/partialsDir/${req.params.partialName}`,
{root: __dirname });
});
这样,您甚至可以将文件通过车把或任何其他Sirveride模板引擎进行预处理。
我这样做了,因为我不想在公共目录中有任何模板。