2014-11-09 52 views
0

我有一个页面,如:MVC4无法加载的jquery

@model PAP.Models.Account.LoginModel 
@{ 
    Layout = null; 
} 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    @Scripts.Render("~/bundles/jquery") 
</head> 
<body> 
</body> 
</html> 

这些束被配置等:

public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js")); 

代码/页工作正常。但是在我将它发布到生产服务器(DEV pc是windows 7,服务器是windows 2012)之后,jquery未加载。对于这个页面,我没有使用任何布局。

哪里以及如何解决这个问题!

非常感谢!

+1

假设你在Release模式出版,所述捆绑正在寻找.min版本。你上传了两个版本吗? – 2014-11-09 05:00:49

+0

@TiesonT。,这是不正确的。默认情况下,捆绑器将创建一个.min版本(如果不存在)。 – 2014-11-09 06:53:52

+0

@StephenMuecke我认为我们都有点偏离。捆绑器实际上并不是创建.min版本,如果它缺少的话,它只是在为捆绑产生的连接和缩小文件中使用非缩小版本。如果这就是你的意思,那么我明白这一点。 – 2014-11-09 07:23:06

回答

0

让我回答我的问题:

我用小提琴手跟踪的HTTP请求,并找出形式的认证块获得“包”的文件夹。

我所做的就是添加bundles文件夹以允许匿名访问。这工作!但我有其他类似的项目没有这个问题。仍然无法找出真正的原因。任何机构都有什么想法?

这里是我的配置的一部分:

<location path="pub"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="bundles"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location allowOverride="true"> 
    <system.web> 
     <authorization> 
     <deny users="?" /> 
     </authorization> 
     <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" slidingExpiration="true" timeout="30" /> 
     </authentication> 
    </system.web> 
    </location> 
+0

您是否向您的FilterConfig添加了AuthorizeAttribute?这将使其强制授权每一个请求,包括那些资产在/ Content文件夹。否则,请确保将/ Content文件夹从路由机制中排除,方法是将其添加到RouteConfig中:'routes.IgnoreRoute(“{folder}/{* pathInfo}”,new {folder =“content”});' – 2014-11-10 07:37:37