IIS 将 MVC 中的静态文件理解为动态内容

2024-01-05

通过使用 httpCompression,我意识到 IIS 将 MVC 中的静态文件理解为动态内容,因此即使您勾选了“启用静态内容压缩“,但不要勾选”启用动态内容压缩", IIS 将返回.css and .js未压缩的文件:

GET /MVCX/Content/Site.css HTTP/1.1
Host: localhost
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2
Accept: text/css,*/*;
Referer: http://localhost/mvcx/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

HTTP/1.1 200 OK
Content-Type: text/css
Last-Modified: Mon, 05 Dec 2011 12:42:37 GMT
Accept-Ranges: bytes
ETag: "c79895e4bb3cc1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Mon, 05 Dec 2011 12:44:43 GMT
Content-Length: 1005

但如果我勾选“启用动态内容压缩“文件被压缩:

GET /MVCX/Content/Site.css HTTP/1.1
Host: localhost
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2
Accept: text/css,*/*;
Referer: http://localhost/mvcx/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

HTTP/1.1 200 OK
Content-Type: text/css
Content-Encoding: gzip
Last-Modified: Mon, 05 Dec 2011 12:42:37 GMT
Accept-Ranges: bytes
ETag: "c79895e4bb3cc1:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Mon, 05 Dec 2011 12:48:36 GMT
Content-Length: 522

即使我试图忽略去往的路线~/Content and ~/Scripts,这些文件仍然被理解为动态内容:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("{Content}/{*pathInfo}");
        routes.IgnoreRoute("{Scripts}/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
    }

我认为这可能是因为 MVC 需要 web.config 行,但也强制所有请求通过 ASP.NET 管道:

<modules runAllManagedModulesForAllRequests="true" />

更新:我尝试将此设置设置为 false 并且发生相同的情况。

有办法避免吗?我不想对动态内容进行压缩,但我确实希望对静态内容进行压缩。

或者是将文件放在其他地方的唯一方法?

Cheers.


我想你会发现里克已经在这里回答了你的问题:

http://www.west-wind.com/weblog/posts/2011/May/05/Builtin-GZipDeflate-Compression-on-IIS-7x http://www.west-wind.com/weblog/posts/2011/May/05/Builtin-GZipDeflate-Compression-on-IIS-7x

老实说,我不确定你为什么会遇到这个问题。静态压缩在 MVC3 中对我来说是开箱即用的,不需要特殊的更改。

就像 RickNZ 所说,确保哑剧类型在applicationhost.config.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS 将 MVC 中的静态文件理解为动态内容 的相关文章

  • 为什么 DropDownListFor 无法识别编辑器模板中的选定值?

    我有以下名为 DropDown cshtml 的编辑器模板 这list部分工作正常 模板使用了一些我所做的巫毒来获得所需的SelectList from ViewData 控制器将视图模型中的所有选择列表放入ViewData 并且列表方面没
  • asp.net mvc 3,主题(不同视图)

    我想向我的网站添加将使用完全不同视图的主题 我想在我的项目中看到它们 如下所示 Views Theme1 Views Theme2 而不是默认的 Views 当然 我需要一种简单的方法来在它们之间进行切换 所以问题是 如何让 ViewEng
  • mvc 登录尝试失败后生成验证码

    所以我能够让我的验证码工作正常工作 但我的问题是 我想让它只在 3 次尝试后出现 我的一个选择是将用户重定向到一个已经有验证码的视图 重复登录 但带有验证码 然后让他通过该页面登录 还有其他选择吗 我觉得部分视图会导致页面发布出现问题 您认
  • 用户注销速度非常快

    我正在使用 ASP NET 身份成员身份 这是 Startup Auth cs 代码 app CreatePerOwinContext EFDbContext Create app CreatePerOwinContext
  • ASP.NET MVC3:WebGrid + Ajax 过滤器 + Ajax 排序和分页

    基本上 我正在使用 WebGrid 并且需要过滤结果 我遇到的第一个问题是 这是我第一次使用 WebGrid 我希望你们中的一些人能够帮助我 到目前为止 我已经设法对网格结果进行排序并使用 Ajax 过滤它们 但是 当重新排序过滤后的结果
  • _Layout.cshtml无法直接请求,因为它调用了“RenderBody”方法

    我使用属性来路由 这是否相关 我不知道 当我不使用 Route 属性时 共享控制器中的 Layaout 操作不起作用 但页面正在呈现 public class SharedController Controller GET Shared A
  • System.Web.UI.ViewStateException:无效的视图状态

    我有一个用 ASP net 和 C 开发的 Web 应用程序 我还使用 Telerik ASP NET AJAX 作为 Web UI 应用程序抛出异常 System Web UI ViewStateException Invalid vie
  • 每 4 个循环新表行

    如何在 Razor 视图中每 4 个循环创建一个新表行 这是为 4 之前的每个数字创建一个新行 然后停止创建新行 int i 0 foreach var item in ViewBag ProgramIdList if i 4 0 tr t
  • 如何从 IIS 7.5 中的 PHP 页面诊断内部服务器错误 (HTTP 500)

    我正在尝试获取在我的本地开发计算机 带有 IIS 7 5 的 Windows 7 64 位 上运行的 aMember 会员管理系统的试用副本 我有 MySQL 5 5 10 和 PHP 5 3 6 后者是我使用 Windows 安装程序包安
  • 显示 PDF ASP.Net MVC

    我的桌面上有一个文件用于测试 我试图在如下视图中显示它 ViewBag Title ShowFile h2 ShowFile h2 我用于控制器的代码是 HttpGet public ActionResult ShowFile string
  • ASP.NET MVC 显示配置文件中的用户名

    以下是LogOn来自 Visual Studio 创建的标准默认 ASP NET MVC 项目的用户控件 登录用户控件 ascx Welcome b b
  • 从 .Net MVC 视图获取 HTML,而不在浏览器中实际渲染视图?

    我的控制器中有一个 ActionResult 我想从中发送 HTML 电子邮件 该电子邮件的正文是由视图生成的 我可以在传递模型时获取视图的结果并避免将其发送到浏览器 而不是在控制器中使用 2 个 actionresults 方法吗 Mvc
  • 如何为客户端和服务器缓存设置不同的缓存过期时间

    我想让某些页面为客户端提供 10 分钟缓存 为服务器提供 24 小时缓存 原因是如果页面发生变化 客户端将在 10 分钟内获取更新版本 但如果没有任何变化 服务器只需每天重建一次页面 问题在于输出缓存设置似乎覆盖了客户端设置 这是我的设置
  • 如何将 Orchard CMS 与当前的 MVC2 应用程序集成?

    对于我的项目 客户端有一个现有的 ASP NET MVC 2 Web 应用程序 该应用程序具有产品目录和购物车功能 客户正在重新设计他们的网站 并希望使用 Orchard 来维护他们的内容页面 例如主页 关于 服务等 他们希望尽可能多地使用
  • asp.net mvc 4 - 可以在每个线程共享 DbContext 吗?

    From 每个 Web 请求一个 DbContext 为什么 https stackoverflow com questions 10585478 one dbcontext per web request why 我的理解是 DbCont
  • ASP.NET MVC 子操作的路由匹配

    子动作的路由匹配方法与普通动作有什么不同吗 换句话说 子操作是否有一些自动生成的 url 来进行与父操作类似的匹配 父级或子级动作处理没有区别 任何操作都遵循您在中设置的相同路线定义Application Start 这意味着父母的行为以及
  • 阻止未确认电子邮件的用户使用 Identity 2 登录 ASP.Net MVC

    在 Microsoft Identity 2 中 用户可以确认我从以下位置下载了 Identity 2 示例项目的电子邮件地址here https www nuget org packages Microsoft AspNet Identi
  • 使用 AJAX 加载部分视图不起作用

    请原谅我 我是 MVC 和 AJAX 的新手 目前我只是提交一个表单 我想使用表单中的数据使用 ajax 更新部分视图中的表 My UserInfo部分视图如下所示 model IEnumerable
  • IIS 7.5 托管的 WCF 服务仅针对大型请求抛出 EndpointNotFoundException 和 404

    我有一个 WCF REST 服务托管在 IIS 7 5 Windows 2008 R2 上 该服务按预期工作 除非客户端尝试发送大于 25 MB 的消息 具体来说 当发送大小约为 25 MB 的消息时 服务会正确接收并处理消息 而当发送大小
  • mvc显示模板中当前项目的索引

    我有一个带有显示模板的 mvc 页面 如何获取显示模板中呈现的当前项目的索引 它在名称属性中产生正确的可绑定结果

随机推荐

  • 如何正确地将多个片段添加到片段过渡?

    最近问了一个关于fragment的问题here http stackoverflow com questions 12443312 listview not populating or webview taking up entire sc
  • 如何删除android微调器中的默认值?

    我正在使用 JSON 从数据库中获取值并将它们插入微调器中 该进程正在成功运行 但是当我单击微调器时 我收到了两次微调器提示 如何从微调器中删除第一个默认值 This is snapshot hope you understand my p
  • 如何在 Spring 配置文件中混合使用 CGLIB 和 JDK 代理?

    该线程与我遇到的一个问题有关这里关于访问建议类的受保护方法的需求 https stackoverflow com q 10110253 827480 我正在使用 Spring 3 0 6 并创建了一个 Spring 分析方面 我将其应用于使
  • 从 C++ 调用 dll 函数

    我在 dll 中有一个函数 我想从我的 C 应用程序调用它 该 dll 也是用 C 编写的 并且有一个 def 文件 该文件显示了 dll 中存在的函数 我使用的是 Visual Studio 2010 通过在链接器 附加库目录 中添加 D
  • 地图的联合迭代器?

    Preface 关联 C 容器 例如std map有点像只有一个键列的微型数据库 升压的bimap将其提升为一个两列表 在两列中都进行查找 但这就是类比 没有 polymap 来概括这个想法 无论如何 我想继续将地图视为数据库 现在我想知道
  • 普通 es6 类和扩展 React.Component 有什么区别

    我在用着反应全栈 https github com kriasoft react starter kit作为开始我的项目的脚手架 我发现它的示例代码与官方的 React 文档有很大不同 示例代码是这样的 withStyles styles
  • 当我有 UTC 偏移时如何创建 tzinfo?

    我有一个时区与 UTC 的偏移量 以秒为单位 19800 并且也有字符串格式 0530 我如何使用它们来创建一个tzinfo实例 我调查了pytz 但在那里我只能找到以时区名称作为输入的 API 对于 Python 3 2 或更高版本 您可
  • 如何使用 powershell 脚本替换文本文件中的值

    我的文件包含以下数据 无标题 DEPOSIT ADD 123456789 VALUE VARIABLE NNNN VALUEVARIABLE DEPOSIT ADD 234567890 VALUE P75 NNNN VALUEVARIABL
  • 关闭汞分支机构

    使用时hg branch FeatureBranchName并将其发布到开发人员之间共享的中央存储库 有没有办法最终关闭FeatureBranchName它的开发何时正式与默认分支合并 如果FeatureBranchName执行时不可见hg
  • 使用名称jquery通过索引获取id值

    html
  • TFS 回滚与“获取此版本”

    回滚和 获取此版本 有什么区别 它们都让我返回到特定版本 并从那里进行更改和签入 两者兼备有什么额外好处 Get specific version Get this version 仅影响您的本地工作区 它将所有本地更改恢复为旧版本 当您尝
  • 在我的 rspec 中找不到访问方法

    我的 java web 应用程序运行在 tomcat 上http localhost 8080 com http localhost 8080 编写我的第一个规范 home spec require spec helper describe
  • Paypal使用POST方式返回

    我正在尝试使用沙盒帐户测试 Paypal 第三方购物车按钮 该按钮如下所示
  • tr1::mem_fn 和具有默认参数的成员

    我的类有一个带有默认参数的成员函数 struct Class void member int n 0 通过 std tr1 mem fn 我可以调用它 Class object std tr1 mem fn Class member obj
  • 如何在具有 URL 外观的 TextView 中呈现文本

    请问如何渲染文本TextView具有类似于 URL 的外观 带下划线的蓝色文本 它可以与常规文本混合 显示为纯文本 吗 当我点击它时 它就会启动WebView加载该网址 Check autoLink http developer andro
  • dyld:未加载库:@rpath/libswiftCore.dylib。问题仍然存在

    我知道这个问题已经被回答过好几次了 但是当我为 IOS 8 1 编写 Swift 应用程序时 我一直无法找到此错误的正确解决方案 dyld 未加载库 rpath libswiftCore dylib 引用自 private var mobi
  • 在SAS中运行程序的热键?

    我知道在 R 中我可以使用 control r 来运行我的程序代码 我想知道 SAS 中是否有等效的热键 如果没有 有没有办法将其 编程 到 SAS 中 运行 提交程序 的默认热键是 F8 键 如果您使用的是 Base SAS 不是 EG
  • Maven exec:java run可执行插件依赖jar导致NPE

    我正在制作一个使用 sparql 端点服务的 Maven 应用程序 我想要一个 Maven 目标来下载 sparql 端点并启动服务 但似乎 Maven 在配置类路径方面存在一些问题 我正在使用 blazegraph 及其工件https m
  • java.lang.ArrayIndexOutOfBoundsException:RSA 块的数据过多

    我正在使用 RSA 加密文本和解密文本 公钥和私钥是使用openssl工具生成的 解密数据时遇到 java lang ArrayIndexOutOfBoundsException too much data for RSA block 异常
  • IIS 将 MVC 中的静态文件理解为动态内容

    通过使用 httpCompression 我意识到 IIS 将 MVC 中的静态文件理解为动态内容 因此即使您勾选了 启用静态内容压缩 但不要勾选 启用动态内容压缩 IIS 将返回 css and js未压缩的文件 GET MVCX Con