服务器端渲染静态 html 使用 NodeJS 和路由

Server Side rendering static html with NodeJS and routing

我有一个 Angular 4 应用程序,它有很多用户可以与之交互的静态内容。 我面临的问题是服务器端呈现应用程序,以便 google 可以引用其内容。 您可能知道,一旦您使用 UI 库(例如 Angular Material 或 PrimeNG...

,从服务器渲染一个 Angular 4 应用程序真的很痛苦

我试图实现的想法是在客户端生成所有页面,将 html 保存在单独的 html 文件中,并让 NodeJS 以静态方式呈现这些文件以便google在解析网站时能够看到,同时也为用户加速渲染。

我所有的 url 都遵循这种模式: https://www.mywebsite.com/XXXX/page_id/yyyy

问题是如何从 url 中提取 page_id,并将之前创建的静态 html 文件 (page_id.html) 渲染到同一个 [=31] =] ?

由于我使用静态 html,这是我想出的解决方案:

var express = require("express");
var path = require("path");


var app = express();

app.get('*.*', express.static(path.join(__dirname)));

app.use(express.static(path.join(__dirname)));

app.get('/',function(req,res){
     res.sendFile(path.join(__dirname+'/index.html'));
});

app.get('/xxx/:pageId/yyy', function(req, res) {        
    res.sendFile(path.join(__dirname+'/'+req.params.pageId + '.html'));
});