在 IIS 中托管 GWT Web 应用程序
我当前正在尝试通过 Web.config 配置 ASP.net Web 应用程序,以在特定文件夹中托管 GWT WebApp。我已经设法在 system.Webserver/staticContent 部分中为 .manifest 文件扩展名配置 mimeMap,但是,我仍然使用 clientCache。我想添加一个缓存规则,以便包含“.nocache”的文件。提供以下标头:
"Expires", "Sat, 21 Jan 2012 12:12:02 GMT" (today -1);
"Pragma", "no-cache"
"Cache-control", "no-cache, no-store, must-revalidate"
任何人都知道如何在 IIS 7+ 中执行此操作?
I am currently trying to configure an ASP.net Web Application through Web.config, to host a GWT WebApp in a specific folder. I've managed to configure the mimeMap for the .manifest file extension in the system.Webserver/staticContent section however, i'm stuck with the clientCache. I want to add a caching rule so that files with ".nocache." are served with the following headers:
"Expires", "Sat, 21 Jan 2012 12:12:02 GMT" (today -1);
"Pragma", "no-cache"
"Cache-control", "no-cache, no-store, must-revalidate"
Anyone knows how to do this within IIS 7+ ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
IIS 中会自动检查文件时间戳,浏览器始终根据时间戳向服务器请求更新的文件,因此 .nocache。文件在 IIS 中不需要任何特殊的东西。
但是,如果您希望浏览器缓存 .cache。对于以 .cache.js 或 .cache.html(或任何扩展名)结尾的文件,以下 HttpModule 将缓存过期日期设置为从现在起 30 天。浏览器甚至不会请求这些文件的更新版本。
其 web.config 是:
The file time stamp is automatically checked in IIS and the browser always requests the server for updated file based on the timestamp, so the .nocache. files don't need anything special in IIS.
However if you wanted the browser to cache the .cache. files then the following HttpModule sets the cache expiration date to 30 days from now for files that end in .cache.js or .cache.html (or any extension). The browser won't even request for updated versions of these files.
The web.config for this is:
我最终创建了一个自定义 httphandler 来处理对路径 .nocache. 的所有请求,使用类似于此处描述的解决方案:
防止脚本以编程方式缓存
I ended up creating a custom httphandler to handle all the requests to the path .nocache. using a solution similar to the one described in here:
Prevent scripts from being cached programmatically
在 GwtCacheHttpModuleImpl.cs 文件中创建 HTTP 模块类
在 Web.Config 文件中引用您的 HTTP 模块:
通过 ISAPI 模块处理 GWT 文件扩展
您应该通过 IIS UI(IIS 5.x 和 . NET 3.5(在我的例子中)。
您可以添加其他 GWT 文件扩展名,例如 png、css...
a) 处理 .js 扩展名
可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi。 dll
扩展名:.js
限制为:GET,HEAD
b) 处理 .html 扩展名
可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
扩展名:.html
限制为:GET,HEAD >
参考:GWT Apache 服务器完美缓存
Create an HTTP module class in GwtCacheHttpModuleImpl.cs file
Reference your HTTP module in Web.Config file :
Handle GWT file extention via ISAPI module
You should configure your application via IIS UI ( IIS 5.x and .NET 3.5 in my case ).
You could add other GWT file extensions like png, css, ...
a) Handle .js extension
Executable : c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
Extension : .js
Limit to : GET,HEAD
b) Handle .html extension
Executable : c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
Extension : .html
Limit to : GET,HEAD
Reference : GWT Perfect Caching for Apache server