如何在前端和Express服务器端渲染中使用相同的视图



我有一个部分视图,该视图用于服务器端渲染以构建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模板引擎进行预处理。

我这样做了,因为我不想在公共目录中有任何模板。

相关内容

  • 没有找到相关文章

最新更新