3

(アクセスすると) html コンテンツをnode.js返すファイル サーバーが実行されています。また、ファイルと同じディレクトリに、node.jsという javascript ファイルがありますtest.js。また、返される html コンテンツで、その JavaScript ファイルをロードする必要があります。ただし、返される html コンテンツではindex.html、スクリプトは次のようになります。

<script type="text/javascript" src="test.js"></script>

しかし、サーバーはファイルを送信しておらず、test.jsファイルを送信しているだけindex.htmlであり、スクリプト リンクは同じディレクトリから比較的ロードしています。

今、私はファイルにURLを与えたくありませんtest.js。ファイルnode.jsもファイルを送信して、test.js最終的にindex.html. そしてindex.html、同じディレクトリからロードできます。

with コードで指定してファイルnode.jsも送信する方法はありtest.jsますか?

ありがとう。

4

1 に答える 1

2

ダンダビスが言ったように、あなたはエクスプレスに精通していますか? Express では、静的ファイルのディレクトリを設定できます。以下の私の標準設定を参照してください:

app
  .use('view engine', jade)
  .use(express.compress())
  .use(express.limit('10mb'))
  .use(express.bodyParser())
  .use(app.router)
  .use(stylus.middleware({
     src: __dirname + '/www',
     compile: function(str, path) {
          return stylus(str)
              .set('filename', path)
              .set('compress', false)
              .set('warn', true);
        }
    }))
  .use(express.static(__dirname + '/www'))
  .use(express.logger());

ここで重要な部分は下から 2 番目です。基本的に、Express は、HTML で指定したアセットをその静的ディレクトリ内で検索することを認識しています。私の場合、サーバー フォルダー内に WWW という名前のフォルダーを作成し、そこに JS、CSS、および画像を追加します。たとえば、WWW フォルダー内に "stylus" フォルダーを作成し、そこに store.css を追加するとします。その CSS アセットへのリンクは、私の Jade テンプレートでは次のようになります。

link(rel="stylesheet", type="text/css", href="stylus/store.css")

Express は、__dirname + '/www' パスに関連するアセットを探すことを認識しているため、"stylus" フォルダーとそこに含まれる CSS アセットを見つけます。これがお役に立てば幸いです。私があなたの意図から離れていないことを願っています!

于 2013-10-09T01:24:18.300 に答える