リソースの読み込みに失敗しました: .js 最適化で 403 禁止 質問する

リソースの読み込みに失敗しました: .js 最適化で 403 禁止 質問する

.js ファイルと .css ファイルを縮小しようとしています。

パックをインストールしましたInstall-Package Microsoft.AspNet.Web.Optimization

最適化を有効にするたびにBundleTable.EnableOptimizations = true;

クライアントで次のエラーが表示されます:

リソースの読み込みに失敗しました: サーバーはステータス 403 (禁止) で応答しましたhttp://localhost:22773/Content/themes/elevation/v=gnDLBbf1VVRuQDXtIYn1q0P3ICZG7oiwwgxPRbaLvqI1

私が何を間違っているのか分かる人はいますか?

---BundleConfig情報---------------------------------

 public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        BundleTable.EnableOptimizations = true;

        bundles.Add(new ScriptBundle("~/bundles/myJquery").Include(

           "~/Scripts/jquery-1.9.1.js",
          "~/Scripts/jquery-ui-1.10.1.custom.js",
            "~/Scripts/jquery.signalR-1.0.1.js",
            "~/Scripts/signalr-hubs.js",
            "~/Scripts/Controls/Select/Simple/jquery.ui.selectmenu.js"
        ));


        bundles.Add(new ScriptBundle("~/bundles/shared").Include(
            "~/Scripts/global/prototypes.js",
            "~/Scripts/global/mathutil.js",
            "~/Scripts/global/elevationevents.js"
            ));


        bundles.Add(new ScriptBundle("~/bundles/core").Include(
            "~/Scripts/elevation/core/sys.config.js",
            "~/Scripts/elevation/core/bays.js",
            "~/Scripts/elevation/core/door.js",
            "~/Scripts/elevation/core/horiziontal.js",
            "~/Scripts/elevation/core/vertical.js"));


        bundles.Add(new StyleBundle("~/Content/themes/elevation").Include(
            "~/Content/themes/dialogs/dialogs.css",
            "~/Content/themes/social/ac/acSocial.css",
            "~/Content/themes/elevation/elevation.css"
      ));
    }
}

-----------------------------私はまだこれを理解していません---------------------

私はWindows7 OSで2013 .netとiis8を使用しています

これが最新のエラーです。ソリューションをデバッグ モードから解除できません。解除すると、以下のエラーが発生します。

    HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.

Most likely causes:
A default document is not configured for the requested URL, and directory browsing is not enabled on the server.

Things you can try:
If you do not want to enable directory browsing, ensure that a default document is configured and that the file exists.
Enable directory browsing.
Go to the IIS Express install directory.
Run appcmd set config /section:system.webServer/directoryBrowse /enabled:true to enable directory browsing at the server level.
Run appcmd set config ["SITE_NAME"] /section:system.webServer/directoryBrowse /enabled:true to enable directory browsing at the site level.
Verify that the configuration/system.webServer/directoryBrowse@enabled attribute is set to true in the site or application configuration file.

Detailed Error Information:
Module     DirectoryListingModule
Notification       ExecuteRequestHandler
Handler    StaticFile
Error Code     0x00000000
Requested URL      http://localhost:1499/Content/themes/elevation/?v=aukmuLTC3g_fDko3eWmzqq7A8miRqgsJKXA2GO3w-pg1
Physical Path      c:\users\administrator\documents\visual studio 2013\Projects\AlumCloud\AlumCloud\Content\themes\elevation\
Logon Method       Anonymous
Logon User     Anonymous
Request Tracing Directory      C:\Users\Administrator\Documents\IISExpress\TraceLogFiles\ALUMCLOUD(3)

More Information:
This error occurs when a document is not specified in the URL, no default document is specified for the Web site or application, and directory listing is not enabled for the Web site or application. This setting may be disabled on purpose to secure the contents of the server.
View more information »

これは、デバッグモードではないときにエラーを生成する iis8 によって作成される URL です。

http://localhost:1499/Content/themes/elevation/?v=aukmuLTC3g_fDko3eWmzqq7A8miRqgsJKXA2GO3w-pg1

以下はエラーなしで実際の.cssファイルを返すURLです。

http://localhost:1499/Content/themes/elevation/elevation.css

ベストアンサー1

同じ問題がありました。私の場合、解決策はコンテンツバンドルに別の名前を付けることでした。IISがリクエストをインターセプトし、バンドル名をディレクトリとして扱い、コンテンツフォルダが実際に存在するため、禁止エラーを返すためだと思います。したがって、次のよう~/Content/themes/elevationに名前を変更することができます。~/css/themes/elevation

bundles.Add(new StyleBundle("~/css/themes/elevation").Include(
            "~/Content/themes/dialogs/dialogs.css",
            "~/Content/themes/social/ac/acSocial.css",
            "~/Content/themes/elevation/elevation.css"
      ));

また、変更されたバンドル名を使用するようにマークアップ/マスターページを調整することを忘れないでください。

<%: Styles.Render("~/css/themes/elevation") %>

次に、バンドルへのアクセスを許可するために、web.config に場所ディレクティブを追加します。

<location path="css">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="bundles">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

お役に立てれば。

おすすめ記事