在MVC中找不到CSS和JS包

时间:2016-04-16 05:27:32

标签: asp.net-mvc bundle

当我在本地计算机上发布或运行应用程序时,发布模式包不能正常工作。它会生成如下所示的URL:

http://localhost:60676/Content/css/?v=rRDBls2mnY7IG-YV_CwsQLv__74wfMTc-gyS9foHN601
http://localhost:60676/bundles/jquery?v=FVs3ACwOLIVInrAl5sdzR2jrCDmVOWFbZMY6g6Q0ulE1
http://localhost:60676/bundles/jqueryval?v=0EJjPUV3D0sQSPyawK-IAWWKeZ8W_Vg3wDTJ1MI1v3M1
http://localhost:60676/bundles/modernizr?v=wBEWDufH_8Md-Pbioxomt90vm6tJN2Pyy9u9zHtWsPo1

在控制台错误中读取如下: *

  

无法加载资源:服务器响应状态为403(禁止)

我在Global.asax中的代码如下Application_Start()

中所示

BundleConfig.RegisterBundles(BundleTable.Bundles); BundleTable.EnableOptimizations = true;

2 个答案:

答案 0 :(得分:3)

此错误主要是由于捆绑网址与物理文件/文件夹之间发生冲突而导致的。

例如,如果您的解决方案具有以下结构:

   -root
     -bundles
        -jquery.js

你定义一个这样的包:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/bundles/jquery-{version}.js"));

这将导致403

因此,您需要做的是确保捆绑网址在解决方案中没有相应的文件夹。

答案 1 :(得分:0)

我有类似的问题,除了我收到500错误。

我做了以下事情:

  1. 确保在_Layout.cshtml页面中没有单独的脚本块或对脚本之外的会话的任何引用

    • 在Scripts.Render调用
    • 之后将任何脚本块放在head部分中
    • 不要这样做,(我认为这可能是抱怨引用会话的地方 - 不确定):

      @ Html.Hidden(" TimeOutSetting",Session.Timeout)

  2. 然后在头部

    之外的脚本块中引用它
        $("#TimeOutSetting").val()
    
    - instead use this in the scripting:
    
        @Session.Timeout 
    
    1. 确保所有脚本块都被@section Scripts {}包围 所有其他页面

    2. 在RegisterBundles函数中
    3. 添加它,以便正确编译 取决于您是否已选择“调试”或“发布”

      #if DEBUG
              BundleTable.EnableOptimizations = false;
      #else
              BundleTable.EnableOptimizations = true;
      #endif
      
    4. 最后我有一些调试代码,我已经添加到Global.asx.cs文件中,我认为它抱怨在这里引用Session。情况可能并非如此,但我删除了它&它有效...

      protected void Application_AcquireRequestState(object sender, EventArgs e)
      {
          HttpContext context = HttpContext.Current;
          var session = context.Session;
          var newSession = session.IsNewSession;
          var cookieLess = session.IsCookieless;
          var sessionId = session.SessionID;
          string sessionCookie = context.Request.Headers["Cookie"];
      }
      
    5. 我希望这有助于防止你在我最终想出这个之前就像疯了一样疯狂。

      祝你好运!