将gzipped js与asp.net中的htm页面链接起来

时间:2011-11-04 06:09:04

标签: javascript asp.net-ajax

我使用gzip工具gzipped javascript文件并将其放在我的asp.net项目中。现在我想将这个压缩的js与同一个项目中的htm页面链接起来。我试过了

<script type="text/javascript" src="Communicator.js.gz"></script>

但是没有用......有没有办法把它们联系起来?

1 个答案:

答案 0 :(得分:0)

虽然不寻常,但显然可以这样做:

  

gZip your JavaScript

压缩脚本后,您可能需要添加重写规则,告诉浏览器在.htaccess(或等效)文件中执行的操作:

AddEncoding gzip .gz
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]

这假设您正在运行mod_rewritemod_rewrite相似的重写器(例如IIS上的ISAPI_Rewrite3)。

如果你在IIS7.x上运行,那么你需要创建一个IIS7 UrlRewrite规则,它看起来像:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Imported Rule 1" stopProcessing="true">
        <match url="^(.*)$" ignoreCase="false" />
        <conditions logicalGrouping="MatchAll">
          <add input="{HTTP_ACCEPT_ENCODING}" pattern="gzip" ignoreCase="false" />
          <add input="{HTTP_USER_AGENT}" pattern="Safari" ignoreCase="false" negate="true" />
          <add input="{REQUEST_FILENAME}.gz" matchType="IsFile" ignoreCase="false" />
        </conditions>
        <action type="Rewrite" url="{R:1}.gz" appendQueryString="true" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

上述规则是由IIS7的UrlRewrite mod_rewrite导入工具生成的,未经测试。

正如我上面所说,这将是一个相当不寻常的情况,因为大多数Web服务器现在都配置为在可能的情况下缩小或压缩内容。