为静态资源设置cookieless域

时间:2010-12-06 17:06:46

标签: asp.net web-config url-rewriting yslow cookieless

我在IIS7上使用.net 3.5运行asp.net Web应用程序。

为了提高我的Yslow得分,我正在考虑为我的静态资源(如图像,CSS和JavaScript)实现一个无Cookie域。

我网站的网址是www.mywebsite.com。

因此,静态资源的网址为static.mywebsite.com/styles.css

我希望尽可能无缝地进行此更改。我在整个网站使用相对路径。

我可以设置subirectoy static.mywebsite.com

但我还需要对我的应用程序进行更改。我正在寻求帮助。使用可以包含在web.config中的新功能进行URL重写。关于我如何能够为images / css / javascript设置static.mywebsite.com的任何提示或想法?

1 个答案:

答案 0 :(得分:0)

可以使用出站规则。此规则将js,css,jpg和png重写为static.mywebsite.com。

<outboundRules rewriteBeforeCache="true">
    <rule name="CDN-01-css" preCondition="CheckHTML" stopProcessing="true">
      <match filterByTags="Link" pattern="/(.*\.css)" />
      <action type="Rewrite" value="http://static.mywebsite.com/{R:1}" />
    </rule>
    <rule name="CDN-01-js" preCondition="CheckHTML" stopProcessing="true">
      <match filterByTags="Script" pattern="/(.*\.js)" />
      <action type="Rewrite" value="http://static.mywebsite.com/{R:1}" />
    </rule>
    <rule name="CDN-01-jpg" preCondition="CheckHTML" stopProcessing="true">
      <match filterByTags="Img" pattern="/(.*\.jpg)" />
      <action type="Rewrite" value="http://static.mywebsite.com/{R:1}" />
    </rule>
    <rule name="CDN-01-png" preCondition="CheckHTML" stopProcessing="true">
      <match filterByTags="Img" pattern="/(.*\.png)" />
      <action type="Rewrite" value="http://static.mywebsite.com/{R:1}" />
    </rule>
    <preConditions>
      <preCondition name="CheckHTML">
        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
      </preCondition>
    </preConditions>
</outboundRules>

例如:

它会自动更改输出html

<link rel='stylesheet' id='social-logos-css' href='/wp-content/plugins/jetpack/_inc/social-logos/social-logos.min.css?ver=1' type='text/css' media='all' />

<link rel='stylesheet' id='social-logos-css' href='http://static.mywebsite.com/wp-content/plugins/jetpack/_inc/social-logos/social-logos.min.css?ver=1' type='text/css' media='all' />