在静态内容的 http header 中添加“过期”的最佳方法是什么?例如。图像,CSS,JS

网络服务器为IIS 6.0;语言是经典的ASP

最佳答案

你可以尝试这样的事情:

@ECHO OFF
REM ---------------------------------------------------------------------------
REM Caching - sets the caching on static files in a web site
REM syntax
REM     Caching.CMD 1 d:\sites\MySite\WWWRoot\*.CSS
REM
REM   %1 is the WebSite ID
REM   %2 is the path & Wildcard - for example, d:\sites\MySite\WWWRoot\*.CSS
REM   _adsutil is the path to ADSUtil.VBS
REM ---------------------------------------------------------------------------

SETLOCAL

SET _adsutil=D:\Apps\Scripts\adsutil.vbs

FOR %%i IN (%2) DO (
  ECHO Setting Caching on %%~ni%%~xi
  CSCRIPT %_adsutil% CREATE W3SVC/%1/root/%%~ni%%~xi "IIsWebFile"
  CSCRIPT %_adsutil% SET    W3SVC/%1/root/%%~ni%%~xi/HttpExpires "D, 0x69780"
  ECHO.
)

它将 web 根目录中每个 CSS 文件的缓存值设置为 5 天,然后像这样运行它:
Caching.CMD 1 \site\wwwroot\*.css
Caching.CMD 1 \site\wwwroot\*.js
Caching.CMD 1 \site\wwwroot\*.html
Caching.CMD 1 \site\wwwroot\*.htm
Caching.CMD 1 \site\wwwroot\*.gif
Caching.CMD 1 \site\wwwroot\*.jpg

有点痛苦,但可行。

顺便说一句 - 要获取 HttpExpires 的值,请在 GUI 中设置该值,然后运行
AdsUtil.vbs ENUM W3SVC/1/root/File.txt

获得您需要的实际值(value)

关于http - "Expires"在静态内容的 http header 中?如何,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/102215/

10-11 20:36