捆绑的jquery css上的404错误,VS2012发布到Azure



我有一个使用jquery datepicker的网站(在常规VS2012 MVC4模板中实现)。在本地主机上运行时,它的外观和工作正常。但是当我发布(到 Azure)时,缺少一些 css。Chrome 开发工具在两个 css 文件上显示 404 错误:

http://cyclelog.azurewebsites.net/Content/jquery.ui.base.csshttp://cyclelog.azurewebsites.net/Content/jquery.ui.theme.css

我注意到我的源代码树中没有这样的文件——而是这两个文件在~/Content/themes/base下(而不是直接在Content/下)。我不知道该怎么做,因为 - 就像我说的 - css在本地主机上工作正常。

我没有修改在默认模板中创建的捆绑配置。或者,更确切地说,我做到了,但只是为了解决这个问题——这不起作用。我在捆绑包初始化中恢复了原始代码:

bundles.Add(new StyleBundle("~/Content/css").Include(
            "~/Content/site.css",                
            "~/Content/themes/base/jquery.ui.all.css"));
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
    "~/Content/themes/base/jquery.ui.core.css",                        
    "~/Content/themes/base/jquery.ui.resizable.css",
    "~/Content/themes/base/jquery.ui.selectable.css",
    "~/Content/themes/base/jquery.ui.accordion.css",
    "~/Content/themes/base/jquery.ui.autocomplete.css",                        
    "~/Content/themes/base/jquery.ui.button.css",
    "~/Content/themes/base/jquery.ui.dialog.css",
    "~/Content/themes/base/jquery.ui.slider.css",
    "~/Content/themes/base/jquery.ui.tabs.css",
    "~/Content/themes/base/jquery.ui.datepicker.css",
    "~/Content/themes/base/jquery.ui.progressbar.css",
    "~/Content/themes/base/jquery.ui.theme.css"));

有什么想法吗?

问题是在您的第一个捆绑包中包含"~/Content/themes/base/jquery.ui.all.css"。将该文件移动到第二个捆绑包,它将起作用。

它在本地工作,因为在本地不会发生捆绑(假设您处于调试模式)。该文件中的@import工作,因为它正在查找正确的目录("/Content/themes/base/"),因为链接呈现为:

<link href="/Content/themes/base/jquery.ui.all.css" rel="stylesheet"/>

部署此文件时,该文件将捆绑到 ~/Content/css 中。样式表是捆绑的,现在呈现为:

<link href="/Content/css?v=IqLBj6MTQkC-CU1" rel="stylesheet"/>

所以现在两个@import语句失败,因为这两个文件在该目录中不存在。

但是,它们确实存在于"~/Content/themes/base/"这就是为什么当所有内容都以发布模式捆绑在一起时,它将在第二个捆绑包中工作的原因。

有关如何在本地复制此问题的更多信息的更多阅读:Scripts.Render using 过时的 javascript 文件

最新更新