2016-06-29 8 views
1

私は最近、PHPからNodeJSへ私のフルWebアプリケーションを変換しました。NodeJSで.htaccessファイルのようなリダイレクトを実行する方法は?

のApacheでは、私がリダイレクトを実行するために.htaccessファイルを使用することができます。私がアプリケーション内で持っていた主なリダイレクトは、すべてのCSSとJSファイルを一意の名前から正しいパスにリダイレクトしていました。これは私が私のサーバーへの更新を押すと、私がする必要があるすべては、サーバからではなくキャッシュからクライアントの負荷はすべてのCSSやJSファイルを持っているグローバル変数を変更していることを確認しました。私のメインのPHPファイルで、私はそうのようなグローバル変数含まれる例えば

、:

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

define('js_version', "7fn39tg"); 

をその後、私のPHPファイルで、私はそうのようなすべてのJSとCSSファイルが含まれますこのような

彼らはその後、レンダリングになるだろうクライアントスライド:

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

最後に、私は、を使用します

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

私はNodeJSで上記を行うことができます方法:それからファイルを読み込むためのはmy-script.jsされ、元の場所ですか?

私はそうのように、私は、テンプレート内のバージョン番号をレンダリングするために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(express.static(__dirname + '/public')); 

答えて

1

あなたがことだ、私はちょうど `redirect`にそれをしたくないres.redirect('/redirect/path')

+1

を使用してノードにリダイレクトすることができます。 '.htaccess'では、ファイル名には、私のHTML内の同じとどまる、私は私の-script__ 7fn39tg.js''を閲覧するときも、それは私の-script.js' 'から内容を表示していました。あなたの方法であるが、私が参照する場合、 '私-script__ 7fn39tg.js'が、それはちょうどので、私はここで何をしようとしているの目的を破り、'私のスクリプト、js'にリダイレクトします。ブラウザは同じファイル名であるためキャッシュから読み込みます。 – Fizzix

関連する問題