私が取り組んでいるプロジェクトでBackboneを試してきました。バックボーンの「pushState」をどうやって機能させるのかに問題がありました。HTML5 PushState Regex Issue
私は4つのビューとルータからなるシンプルなプロジェクトを持っています。この場合、要素のIDを介してルーティングしています。ビュー(http://example.com/backbonetest/ #step1)のいずれかのハッシュに行くと、正しく表示され、URLが変更されます。これは私がここで起こると予想されるものですが、問題は、ハッシュなしで同じものに移動しようとすると発生します(http://example.com/backbonetest/ step1)。ページが存在しないので、予想されるサーバー(IIS)上に404が表示されます。
私が一日中やろうとしてきたのは、IISの正規表現を書いてURLを捕まえて書き換え、URLの最後にあるフラグメントを削除してページが正しく提供されるようにすることです。私は、ページのコンテンツが動的に生成され、とにかくコンテンツを取得するためのスクリプトが必要になるため、同じ名前の物理ファイルを持つよりもむしろURLを書き直すだけです。
私が遭遇した問題は、ファイルシステム上にフォルダ/スクリプト/スタイルをどのように構築する必要があるかと関係している可能性があります。私は/backbonetest/フォルダに含まれている全体の例を持つことができるようにしたいと考えていました。スクリプトの場合は、 'backbonetest/scripts'などです。
私は反対私の正規表現式をテストしてきたURLのリストを作った、と私は達成しようとしてきた結果:私は以来、ことを発見しました:
Input: Output: 2 a2 ab2 ab22 step2 script.js script.js scripts/ scripts/ 555/stuff 555/stuff scripts/script.js scripts/script.js
編集URLに先行するスラッシュ( )が含まれていないため、QtaxのソリューションはIISで動作しません。新しい入力構造が上に示されています。
'/ 555/stuff' url私は404として通常通りと思っています。現在のURL以外のサブディレクトリが定義されていない場合や、URLが明示的なファイル(例えば、拡張子を持つファイル)を参照していない場合にのみ、URLを書き換えたいとします。
私は一日中、これに対する解決策と正規表現を試してみましたが、私の問題の適切な解決策を思いついていませんでした。私はどこでも一つのことを見つけなかったので、私はこれを間違った方法で見ていなければならないと思っています...
誰かが私を助けてくれますか?
は、IISのことは知らないが、正規表現を書き換える^ ^/[ 'です/。 ] + $ 'を'/'に設定します。 – Qtax
これは私のテストデータとIISマネージャーのテスターで完璧に動作しますが、なんらかの理由でURLが正しく捕捉されないか、間違った場所に書き換えられてしまいます。 – brins0
ここで私が入力したのは、IISが書き換えルールに使用するものではなく、なぜ動作していないのかを説明したものです。新しい入力文字列のためにQtaxが提案する式を変更する必要がありますか? – brins0