0

私はMVC3サイトをgoDaddyアカウントに公開しています。VS2010でFTP公開ユーティリティを使用しています。このサイトは「OK」を公開しています。しかし、ここに問題があります:

ローカルマシンで実行すると、Webアドレスは
localhost / Student/Createになります。

Go Daddyアカウントで、mvctestというサブディレクトリを作成しました。mvctestの仮想ディレクトリを指すmvctest.mysite.comというサブドメインを作成しました。これは正常に機能します。

しかし、自分のサイトをwww.mysite.com/mvctestに公開すると、すべてのリンクに追加の/mvctest/ディレクトリが追加されます。私が欲しいのは:
mvctest.mysite.com/Student/Create
私が得るものは:
mvctest.mysite.com/mvctest/Student/Create

興味深いのは、必要なものを手動で入力すると、ページが正常に読み込まれることです。ルートへのリンクをハードコーディングした場合は問題ありませんが、すべてのUrl.ContentとHtmlです。リンクは、追加のmvctestディレクトリを追加します。

私はあちこちを検索しましたが、このジレンマに対する答えは見つかりませんでした。web.configで試しましたが、うまくいかないと思います。VS2010のFTP公開ユーティリティの何かが、global.asaxファイルのルーティング構造を変更しているように感じますが、よくわかりません。

任意の提案をいただければ幸いです。

4

2 に答える 2

0

以下は私にとって同じ問題を解決し、私が見つけたブログ投稿(ソース)から引用されています:

さて、解決策として、最初にこれについて言及したはずですが、URL書き換えモジュールがインストールされたIIS7を使用していることを願っています(GoDaddyでIIS7を使用する場合はデフォルトでインストールされます)。以下をweb.configのsystem.webServer要素に追加するだけです。

<rewrite>
  <rules>
    <rule name="Remove Virtual Directory">
      <match url=".*" />
      <action type="Rewrite" url="{R:0}" />
    </rule>
  </rules>
</rewrite>

これは、URLをそれ自体で「書き換える」だけです。これにより、URL Rewriteは、元のURL(フォルダー名のないURL)をASP.NETMVCが他のURLを生成するために使用するServerVariableに追加します。

于 2012-12-30T15:41:21.517 に答える
0

仮想ディレクトリはアプリケーションですか? アプリケーションとして設定されていない場合、IIS はサイトのルートをアプリケーションとして扱い、サブディレクトリを追加します。この投稿を参照してください。

于 2012-08-06T01:08:13.277 に答える