如何在NodeJS中像.htaccess文件一样执行重定向



我最近将我的整个web应用程序从PHP转换为NodeJS。

在Apache中,我可以使用.htaccess文件来执行重定向。我在应用程序中的主要重定向是将所有CSS和JS文件从唯一名称重定向到正确路径。这是为了确保当我向服务器推送更新时,我所需要做的就是更改全局变量,使客户端从服务器而不是从缓存加载所有CSS和JS文件。

例如,在我的主PHP文件中,我将包含一个全局变量,如下所示:
define('js_version', "7fn39tg");

然后在我的PHP文件中,我将包括所有的JS和CSS文件,像这样:

<script src="content/scripts/my-script__<?php echo js_version ?>.js"></script>

他们将被渲染客户端幻灯片像这样:

<script src="content/scripts/my-script__7fn39tg.js"></script>

最后,我将使用.htaccess从原始位置读取文件,即my-script.js:

RewriteRule ^(.+)__(.+).(js)$ $1.$3 [L]

我如何在NodeJS中做到上述?

我认为我需要使用EJS在模板内呈现版本号,如下所示:

app.get('/', function (req, res) {
    res.render(__dirname + '/public/app.ejs', {
       "js_version": "7fn39tg"
    });
});

并将其包含在我的app.ejs文件中,如下所示:

<script src="content/scripts/my-script__<%= js_version %>.js"></script>

然后使用app.use(function(req, res, next){.....}以某种方式将文件定向到它的实际路径。我目前正在提供以下所有静态内容:

app.use(express.static(__dirname + '/public'));

您可以使用res.redirect('/redirect/path')在Node中重定向

最新更新