0

アセットを提供するために http get リクエストに応答する必要があります。次の説明に一致するルートを作成するために助けが必要です。

パス情報

  • 構成可能な接頭辞があります ( basePath)
  • パブリック フォルダー ( path)内の実際のファイルにマップされるセグメントがあります。
  • 形:[basePath]/[path]

元:

http://localhost:3000/app/collage/components/bootstrap/dist/css/bootstrap.min.css
basePath = '/app/collage' # set through CLI arguments when app loads
path = '/components/bootstrap/dist/css/bootstrap.min.css' # Comes from route

必要なもの:

上記のタイプの URL に応答し、ファイルを読み取ってユーザーに送信する get メソッドを作成する必要があります。以下は明らかに機能しませんが、私が何を求めているかがわかったと思います。

@get "#{settings.basePath}/:path", (req, res) ->
  res.sendFile __dirname + "public" + req.params.path

注:上記は関連しています

アセットを配信するための構成可能なルートを作成しようとしています。

4

1 に答える 1

0

IIRC、Express の「:parameter」トリックはスラッシュと一致しないため、「パス」の一致には使用できません。代わりに独自の正規表現を作成してください。;o)

「IIRC」、私は同じ問題を抱えていたと思うからです。でも、「ルーク、ソースを使え」ですよね?この制限のソース (意図しないしゃれ) は、関数 exports.pathRegexp の ./node_modules/express/lib/utils.js の 300 行目にあると思います。

.replace(/(\/)?(\.)?:(\w+)(?:(\(.*?\)))?(\?)?(\*)?/g, function(_, slash, format, key, capture, optional, star){

または、307行目かもしれません:

(format && '([^/.]+?)' || '([^/]+?)')

スラッシュが明示的に除外されている場所は?

とにかく、ここで "key" に割り当てられたルート パラメータは、明らかに (\w+) に一致します。「キャプチャ」と「スター」が何に使用されているかを理解するのが面倒です。API ref doc のようなものはひどいものだと思います。コードをリバース エンジニアリングしてみませんか?

HTH?

于 2013-12-30T22:33:06.790 に答える