1

私は現在取り組んでいるプロジェクトで Backbone を試してきましたが、Backbone の 'pushState' を希望どおりに機能させるのに問題がありました。

4 つのビューとルーターで構成される単純なプロジェクトがあります。この場合、重要な場合は要素の ID を介してルーティングしています。ビューの 1 つ (http://example.com/backbonetest/ #step1 ) のハッシュに移動すると、正しく表示され、URL が変更されます。これは私がここで起こると予想していることですが、ハッシュを入れずに同じものに移動しようとすると問題が発生します (http://example.com/backbonetest/ step1 )。ページが存在しないため、予想されるサーバー (IIS) で 404 を取得します。

私が一日中やろうとしてきたのは、IIS の正規表現を記述して、URL をキャッチして書き換え、URL の末尾にあるフラグメントを削除して、ページが正しく提供されるようにすることです。ページのコンテンツは動的に生成され、とにかくコンテンツを取得するにはスクリプトが必要になるため、同じ名前の物理ファイルを作成するよりも、単純に URL を書き換えたいと思います。

私が遭遇した問題は、ファイル システム上でフォルダー/スクリプト/スタイルをどのように構成する必要があるかに関連している可能性があります。/backbonetest/フォルダー内にサンプル全体を含めることができるようにしたいと考えていました。スクリプトの場合は、「backbonetest/scripts」など。

正規表現をテストしている URL のリストと、達成しようとしている結果を作成しました。

    入出力:

    2                       
    a2                      
    ab2                     
    ab22                    
    ステップ2                   
    script.js script.js
    スクリプト/スクリプト/
    555/もの 555/もの
    スクリプト/script.js スクリプト/script.js

編集:使用されている URL に前のスラッシュが含まれていないことがわかりました。これが、Qtax のソリューションが IIS で機能しない理由です。新しい入力構造は上に示されています。

「/555/stuff」の URL は、通常どおり 404 になると予想されます。現在のもの以外にサブディレクトリが定義されておらず、URL が明示的なファイル (たとえば、拡張子を持つファイル) を参照していない場合にのみ、URL を書き換えたいと思います。

私はこれに対する解決策を求めて一日中ネットを精査してきましたが、正規表現を試してみましたが、私の問題に対する適切な解決策を思いつくことができませんでした. どこにも何も見つからなかった後、私はこれを間違った方法で見ているに違いないと考えています...

誰でも私を助けてもらえますか?

4

2 に答える 2