javascript - MVCプロジェクトのアクションから返されたHTMLファイルのスクリプトへのパスが正しくありません

原文 javascript c# asp.net-mvc

ASP.NET MVCプロジェクトがあり、SmartAdminブートストラップテンプレートを使用しています。

アプリを実行して直接移動する場合:

http://localhost:8899/smartadmin/public/index.html


その後、すべてが機能します。

しかし、このファイル(index.html)を次のように返すと、

  public ActionResult Index()
  {
      return new FilePathResult("~/smartadmin/public/index.html", "text/html");
  }


このアクションを実行すると、コンソールに多くのエラーが発生します。
ファイルが見つからなかったため、パスが変更されたようです


パスは常にsmartadmin / public /で始まる必要があります

この問題は、スタイルやスクリプトだけでなく、他のファイルでも発生します。 index.htmlでこれらのパスを変更してアプリを実行しても、他のファイル(部分的なビューなど)について再びエラーが発生します。

どこでもパスを変更することはできません。難しいでしょう。
答え
スタイルファイルへの相対パスを使用しているようです。アクションへのルートは、/ a / b / cのようなアクションの戻りで使用するhtmlファイルと同じ「深さ」を持つ必要があります。これは、urlパラメータのルーティング設定で行われます。
ただし、ビューでは絶対パスを使用することをお勧めします。
関連記事

javascript - <a>タグが混在するテキストノードをjQueryでラップする方法は?

javascript - ドロップダウンに表示される複数のcssファイルからCSSクラスのリストを取得します

javascript - HTMLに解析されたJSONデータの<script>タグのエスケープ/削除

javascript - Knockoutjsクリックバインディングが機能しなくなった

javascript - JavaScriptを使用して範囲を強調表示できない

javascript - node.jsのjQueryパッケージに$ .ajaxメソッドがないのはなぜですか?

javascript - 重複のAngular ng-repeat

javascript - iPadのフルカレンダーバージョン2のドラッグイベント

javascript - コマンドラインクライアントと対話する

javascript - JavaScriptの配列値をスキップしますか?