2010-12-11 12 views
1

私はいくつかの記事を格納するウェブサイトを構築しています。各記事のURLは、/ Articles/{categoryid}/{articleslug}の形式でURLルーティングを実装しています。URLルーティングと相対リンクの動作

一部の記事には、グラフィックファイルへのリンクがあります。リンクは完全なパスを指定していないので、私は/Articles/{categoryid}/{articleslug}/graphic.jpgにグラフィックスファイルを保存しています。

これは私のデスクトップで正常に動作します。しかし、共有ホスティングアカウントにサイトを展開したときの動作は異なります。

リンクは、グラフィックファイルを/Articles/{categoryid}/graphic.jpgに保存すると機能します。つまり、私のデスクトップでは、{articleslug}はディレクトリとみなされますが、Web上では現在のページの名前とみなされます。

行動が変わる理由は誰にも分かりますか?例はhttp://www.blackbeltcoder.com/Articles/asp/creating-website-thumbnails-in-asp-netです。上のスクリーンショットとダウンロードリンクの両方が壊れたリンクです。

+0

私は上記のURLに「/」を付けるとディレクトリ名とみなされ、リンクは正常に機能することに気付きました。しかし、私はまだ私がデスクトップ上でこれを必要としなかった理由、または私がこれを制御できるかどうかを理解していません。 –

+0

私のコメントで述べた開発サーバーとIISの違いを除いて、私は自分のページにタグを指定する方向に傾いています。そうすれば、相対リンクの意味を正確に制御できるはずです。 –

答えて

0

ありがとうございました。すでに問題を特定していない限り、誰かがこれを解決するための情報が不足している可能性があります。

いずれにせよ、私はそれを自分で解決することができました。私はRelative Links with Extension-less URLsに投稿した関連する質問で解決方法を説明します。

ありがとうございました。

0

IISのバージョンや構成が異なる可能性が最も高いと思われます。ウェブホストの振る舞いはあらゆる意味を持ちます。デスクトップの動作がわかりにくいです。あなたのデスクトップは/ Articles/{categoryid}/{articleslug}から/ Articles/{categoryid}/{articleslug} /にリダイレクトされていますか?あなたがFiddlerなどを使用して、ブラウザがGET要求を異なってフォーマットするかどうか確認できますか?

+0

開発チームがASP.NETハンドラを介してすべてのリクエストを処理しますが、IISはそうではないことを他の人が指摘しました。彼は、URLがIIS上で.aspxで終わっても大丈夫だと指摘しました。 IISのディレクトリURLのように見える場合は、既定ではASP.NETハンドラ経由で送信されません。それは私がVisual Studioから別の動作を実行する理由です。 –

+0

質問に具体的に答えるために、私はリダイレクトを行っていません。私はASP.NET 4.0 URLルーティングを使用しています。そして、私はフィドラーをインストールしたと思うが、何を探しているのか分からない。私は開発者ですが、管理者/ IISの人ではありません。継続的な努力にもかかわらず、この問題は未解決のままです。 –

+1

私は、.aspxで終わるURLは重要ではないと思います。それが問題だった場合、あなたのサイトはWebサーバー上でまったく動作しません。新しいバージョンのIISには、この問題はありません。私はちょうど私のマシン上で、ASP.NET MVC 1で展開されたルーティングライブラリのバージョンを持っているテストを実行し、それはあなたのWebサーバーと同様に動作します。あなたのbinディレクトリにあなたのバージョンのルーティングdllを配備し、GACではなくその参照を参照し、何が起こるかを見ることができます。 – joelt

関連する問題