2010-12-11 12 views
1

URLルーティングを実装するASP.NET 4.0アプリケーションがあります。これにより、拡張子のないページURLが得られます(例:/記事/ {タイトル})拡張リンクのないURLによる相対リンク

これらのページの一部には相対リンクが含まれています。 Visual Studioからサイトをテストすると、相対リンクは/ Articles/{title}/mylinkを指します。しかし、共有ホスティングアカウントに自分のサイトを展開すると、同じ相対リンクが/ Articles/mylinkを指しています。

http://blackbeltcoder.com/Articles/asp/creating-website-thumbnails-in-asp-netに問題が表示されます。上部付近の画像へのリンクが壊れています。このページはVisual Studioからテストするときにうまく機能しました。 {title}はディレクトリとみなされました。しかし、展開されると、{title}はページ名とみなされます。

上記のURLに「/」を追加すると、期待どおりに動作します。しかし、どうすればそれが常に機能するか確認することができますか?

誰でも分かりますか?

+0

この問題はまだ完全に解決されていません。私はウェブを検索する時間を費やしました。しかし、真実は、私はちょうど違いを引き起こしていることを理解していないので、解決策を探す場所を知らないということです。 –

答えて

0

このWebサイトとURLルーティングも使用している広範なテストの結果、最終的に何が起こっているのかを定義することができました。

私は、このサイトがホスティングアカウントで "ノーマル"として動作する方法について説明します。これは私の他のサイトがホスティングアカウントの両方で自分のデスクトップ上で動作する場合と同じ方法です。 (他のサイトはこのように相対リンクを使用していませんが)

私のデスクトップで新しいサイトを実行すると奇妙なケースが発生します。ブラウザは自動的に "/"を自分のディレクトリであるかのように、ルーティングされたURLに追加します。

これは、同じ名前の物理ディレクトリを作成したためです。物理ディレクトリを削除すると、そのURLがファイルへの参照として扱われます。

私の主な問題は、この奇妙なケースでテストしながらサイトを開発したことです。したがって、解決策は、A)これらのリンクに "/"が追加されてディレクトリと見なされるようにするか、またはB)私が設計したディレクトリ構造を変更するかのいずれかです。

関連する問題