ASP.NET MVC捆绑包未在登台服务器上呈现脚本文件。它适用于开发服务器

在我们的ASP.NET MVC 4 Web应用程序中,我们的BundleConfig.cs包括以下内容:

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

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

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*"));
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

当我们查看开发服务器上主页的html时,即使将web.config中的调试模式设置为true,我们也可以看到以下脚本标签<compilation debug="true" targetFramework="4.0" />

<script src="/AFR/Scripts/jquery-ui-1.8.20.min.js"></script>
<script src="/AFR/Scripts/modernizr-2.5.3.js"></script>
<script src="/AFR/Scripts/jquery-1.7.1.js"></script>
<script src="/AFR/Scripts/jquery-ui-1.8.20.js"></script>
<script src="/AFR/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/AFR/Scripts/jquery.validate.js"></script>
<script src="/AFR/Scripts/jquery.validate.unobtrusive.js"></script>

但是,当我们在暂存服务器上部署该应用程序并查看主页的html(查看源代码)时,除之外的所有上述脚本标签<script src="/AFR/Scripts/jquery-ui-1.8.20.min.js"></script>都丢失了。我们已经验证了这些标记中提到的所有文件都在脚本文件夹中。文件夹结构与开发机上的完全相同。在登台服务器上,web.config fie具有<compilation targetFramework="4.0" />默认情况下的debug =“ false”。

结果,某些JavaScript函数在登台服务器上失败。暂存和开发计算机均为Windows 2012。

请帮忙。谢谢。

汤米

根据您的评论,我们需要研究该Bundling机制在MVC中的工作方式。

编辑:根据以下VSDev的注释,您需要确保WebGrease已安装到您的项目中。NuGet最容易的是安装此软件包。

设置捆绑软件配置时(以上示例为例)

bundles.Add(new ScriptBundle("~/bundles/mainJs")
      .Include("~/Scripts/mainSite.js")
      .Include("~/Scripts/helperStuff.js");

然后,您认为自己的呼叫类似@Scripts.Render("~/bundles/mainJs")当将web.config设置为调试编译时,或者使用BundleConfig.cs文件中的以下行显式关闭捆绑

BundleTable.EnableOptimizations = false;

然后,在您看来,您将看到以下渲染结果

<script src="/Scripts/mainSite.js" type="text/javascript"></script>
<script src="/Scripts/helperStuff.js" type="text/javascript"></script>

这些是组成我们捆绑包的单个项目,未压缩且单独列出。这些在调试模式下单独列出的原因是,您可以调试脚本并在编写脚本时查看它们(实际变量名等)。

现在,当我们不在调试编译中并且尚未关闭EnableOptimizations功能时,MVC会将这些文件组合到我们的捆绑软件中,对其进行压缩(压缩)并仅输出单个脚本标签。

<script src="/bundles/mainJs?v=someBigLongNumber" type="text/javascript"></script>

请注意,源与捆绑软件配置中捆绑软件的名称相同。另外,?v=只要您更改该捆绑包中的文件,后面的数字就会更改。这是为了防止客户端浏览器缓存旧的js和css文件。

您的脚本仍然存在并正在输出,但是它们已被压缩并合并到一个名为的文件中/bundles/mainJs此功能存在于

A)压缩文件并减少正在传输的信息,并且

B)减少访问网站以检索呈现页面所需内容的呼叫次数。

什么都没有丢失,听起来一切都按预期进行。在生产站点中,缩小使得这些文件几乎无法读取,因此为什么缩小在调试时不起作用。

至于为什么jQuery UI仍然是单个JS文件,请确保没有有人将其硬编码到您的布局视图中。至于JS错误,可能是开发箱中存在的错误,或者某些压缩不正确(但是,在我所有的MVC开发中,由于缩小效果不好,我还没有看到JS错误)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.Net MVC应用程序-授权在登台服务器上的执行方式不同

来自分类Dev

CSS文件未在服务器上显示-ASP.NET MVC捆绑包错误。403-禁止访问:访问被拒绝

来自分类Dev

AJAX 请求不适用于 ASP.Net C# - 500 服务器错误

来自分类Dev

ASP NET MVC 5从服务器删除文件

来自分类Dev

ASP NET MVC 5从服务器删除文件

来自分类Dev

一台服务器上的多个 Web 应用程序(Silverlight 和 ASP.NET MVC)

来自分类Dev

为什么在使用ASP.NET MVC捆绑包时,我的客户端为什么要去服务器检查文件是否被修改?

来自分类Dev

为什么在使用ASP.NET MVC捆绑包时,我的客户端为什么要去服务器检查文件是否被修改?

来自分类Dev

部署后服务器上的ASP.NEt MVC编辑文件

来自分类Dev

从ASP.NET中的另一台服务器上载文件

来自分类Dev

ASP.NET MVC5未为请求的URL配置Web服务器,并且未在服务器上启用目录浏览

来自分类Dev

ASP.NET 3.5 代码适用于测试服务器,但不适用于 prod、system.codedom

来自分类Dev

ASP.NET MVC 错误消息“无法连接到 Visual Studio 开发服务器”。

来自分类Dev

ASP.NET Core MVC MySQL服务器连接

来自分类Dev

ASP.NET MVC服务器端打印

来自分类Dev

使用asp.net在服务器上发布数据

来自分类Dev

在asp.net Web服务器上安装字体

来自分类Dev

使用IIS在服务器上发布ASP Net网站

来自分类Dev

从服务器下载ASP.NET文件

来自分类Dev

如何从服务器获取JSON文件?(ASP.NET)

来自分类Dev

ASP.NET MVC 包中的 500 内部服务器错误

来自分类Dev

如何在ASP.NET MVC 4中的服务器上缓存数据?

来自分类Dev

在共享服务器上发布时,ASP.NET MVC错误

来自分类Dev

如何在服务器上安装ASP.NET MVC 5?

来自分类Dev

如何使用Ajax在ASP.NET MVC上显示服务器端验证错误

来自分类Dev

asp.net mvc 5 cookie不能持久保存在本地服务器上

来自分类Dev

500-JQuery Ajax发布上的内部服务器错误(ASP.NET MVC)

来自分类Dev

使用asp.net MVC在服务器上从SVG创建映像?

来自分类Dev

ASP.NET MVC 2.0应用程序无法在服务器上运行

Related 相关文章

  1. 1

    ASP.Net MVC应用程序-授权在登台服务器上的执行方式不同

  2. 2

    CSS文件未在服务器上显示-ASP.NET MVC捆绑包错误。403-禁止访问:访问被拒绝

  3. 3

    AJAX 请求不适用于 ASP.Net C# - 500 服务器错误

  4. 4

    ASP NET MVC 5从服务器删除文件

  5. 5

    ASP NET MVC 5从服务器删除文件

  6. 6

    一台服务器上的多个 Web 应用程序(Silverlight 和 ASP.NET MVC)

  7. 7

    为什么在使用ASP.NET MVC捆绑包时,我的客户端为什么要去服务器检查文件是否被修改?

  8. 8

    为什么在使用ASP.NET MVC捆绑包时,我的客户端为什么要去服务器检查文件是否被修改?

  9. 9

    部署后服务器上的ASP.NEt MVC编辑文件

  10. 10

    从ASP.NET中的另一台服务器上载文件

  11. 11

    ASP.NET MVC5未为请求的URL配置Web服务器,并且未在服务器上启用目录浏览

  12. 12

    ASP.NET 3.5 代码适用于测试服务器,但不适用于 prod、system.codedom

  13. 13

    ASP.NET MVC 错误消息“无法连接到 Visual Studio 开发服务器”。

  14. 14

    ASP.NET Core MVC MySQL服务器连接

  15. 15

    ASP.NET MVC服务器端打印

  16. 16

    使用asp.net在服务器上发布数据

  17. 17

    在asp.net Web服务器上安装字体

  18. 18

    使用IIS在服务器上发布ASP Net网站

  19. 19

    从服务器下载ASP.NET文件

  20. 20

    如何从服务器获取JSON文件?(ASP.NET)

  21. 21

    ASP.NET MVC 包中的 500 内部服务器错误

  22. 22

    如何在ASP.NET MVC 4中的服务器上缓存数据?

  23. 23

    在共享服务器上发布时,ASP.NET MVC错误

  24. 24

    如何在服务器上安装ASP.NET MVC 5?

  25. 25

    如何使用Ajax在ASP.NET MVC上显示服务器端验证错误

  26. 26

    asp.net mvc 5 cookie不能持久保存在本地服务器上

  27. 27

    500-JQuery Ajax发布上的内部服务器错误(ASP.NET MVC)

  28. 28

    使用asp.net MVC在服务器上从SVG创建映像?

  29. 29

    ASP.NET MVC 2.0应用程序无法在服务器上运行

热门标签

归档