服务器端使用NodeJS和路由呈现静态html

时间:2017-09-29 23:21:10

标签: javascript node.js angular angular-ui-router serverside-rendering

我有一个Angular 4应用程序,它有很多静态内容,用户可以与之交互。 我面临的问题是服务器端渲染应用程序,以便谷歌可以引用其内容。 您可能知道,只要您使用Angular Material或PrimeNG等UI库,从服务器进行Angular 4应用渲染就会非常痛苦......

我想要实现的想法是生成客户端中的所有页面,将html保存在单独的html文件中,并使NodeJS以静态方式呈现这些文件,以便谷歌在解析时可以看到它网站,也加快了用户的渲染速度。

我的所有网址都遵循以下模式: https://www.mywebsite.com/XXXX/page_id/yyyy

问题是如何从网址中提取page_id,并将之前创建的静态html文件(page_id.html)呈现给同一个网址?

1 个答案:

答案 0 :(得分:0)

由于我正在提供静态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'));
});