Vert.x Web模块(四)
2016-10-08 13:18
113 查看
配置缓存
静态处理器默认设置缓存头使得浏览器有效缓存文件。Vert.x-Web设置的头有cache-control,last-modified和date
。cache-control被默认设置为max-age=86400,这代表一天。如果需要,可以用setMaxAgeSeconds方法进行设置。如果浏览器如果发送带有if-modifies-since头的GET或者HEAD请求,并且自那资请求后没有被修改,一个304状态会被返回用来告诉浏览器使用本地缓存资源。如果不需要缓存处理,可以用setCachingEnabled禁用。在启用缓存处理后,Vert.x-Web将在内存中缓存最后访问资源的时间,这是为了避免每请求从磁盘检查实际最后修改时间。缓存中的实例有一个过期时间,在过期时间之后,磁盘上的文件将会再次被检查并且更新缓存的实体。如果知道磁盘上的文件从不改变,可以让缓存实体永不过期。默认就是永不过期。如果在服务器运行,磁盘上的文件可能会被修改,可以用setFilesReadOnly方法将文件只读设成false。调用setMaxCacheSize可以指定在同一时间内存中缓存实体的最大个数。调用setCacheEntryTimeout方法设置缓存实体的过期时间。
配置首页
任何对根路径的请求,都将返回索引页(首页)。默认的索引页为index.html。调用setIndexPage方法配置索引页。
改变webroot
静态资源默认从webroot目录对外提供资源。调用setWebRoot方法配置此目录。
提供隐藏文件服务
服务器认提供隐藏文件服务(以.开头的文件如.httpconf)。如果不想提供隐藏文件服务,可以用setIncludeHidden进行配置。
列表目录
服务也可以列出服务端的目录。默认禁用目录列表。用setDirectoryListing进行启用。在目录列表启用后,返回的内容由accept头中的Content-Type决定。对于text/html目录列表,调用setDirectoryTemplate方法指定列出文件录的渲染模板。
禁用磁盘文件缓存
默认地,Vert.x会缓存从类路径获取的对外服务的文件到磁盘当前工作目录的一个叫.vertx子目录。因为每次从类路径中取文件会比较慢,因此在采用fatjar布署的生产环境中,这种方式非常有用。
在开发环境下,这可能会引出一个问题,因为在服务器运行时,如果你更新了静态内容,缓存中的文件可能没有被同步更新。为了禁用文件缓存,可以用vertx.disableFileCaching系统属性为true。例如可以在IDE中设置运行时main类时进行配置。
跨源资源处理
跨源资源共享是一种允许资源从同一域中被请求或者是跨域访问。Vert.x-Web包含一个CorsHandler处理器,此处理器处理CORS协议。这是一个例子:
router.route().handler(CorsHandler.create("vertx\\.io").allowedMethod(HttpMethod.GET));
router.route().handler(routingContext -> {
// Your apphandlers
});
配置缓存
静态处理器默认设置缓存头使得浏览器有效缓存文件。Vert.x-Web设置的头有cache-control,last-modified和date
。cache-control被默认设置为max-age=86400,这代表一天。如果需要,可以用setMaxAgeSeconds方法进行设置。如果浏览器如果发送带有if-modifies-since头的GET或者HEAD请求,并且自那资请求后没有被修改,一个304状态会被返回用来告诉浏览器使用本地缓存资源。如果不需要缓存处理,可以用setCachingEnabled禁用。在启用缓存处理后,Vert.x-Web将在内存中缓存最后访问资源的时间,这是为了避免每请求从磁盘检查实际最后修改时间。缓存中的实例有一个过期时间,在过期时间之后,磁盘上的文件将会再次被检查并且更新缓存的实体。如果知道磁盘上的文件从不改变,可以让缓存实体永不过期。默认就是永不过期。如果在服务器运行,磁盘上的文件可能会被修改,可以用setFilesReadOnly方法将文件只读设成false。调用setMaxCacheSize可以指定在同一时间内存中缓存实体的最大个数。调用setCacheEntryTimeout方法设置缓存实体的过期时间。
配置首页
任何对根路径的请求,都将返回索引页(首页)。默认的索引页为index.html。调用setIndexPage方法配置索引页。
改变webroot
静态资源默认从webroot目录对外提供资源。调用setWebRoot方法配置此目录。
提供隐藏文件服务
服务器认提供隐藏文件服务(以.开头的文件如.httpconf)。如果不想提供隐藏文件服务,可以用setIncludeHidden进行配置。
列表目录
服务也可以列出服务端的目录。默认禁用目录列表。用setDirectoryListing进行启用。在目录列表启用后,返回的内容由accept头中的Content-Type决定。对于text/html目录列表,调用setDirectoryTemplate方法指定列出文件录的渲染模板。
禁用磁盘文件缓存
默认地,Vert.x会缓存从类路径获取的对外服务的文件到磁盘当前工作目录的一个叫.vertx子目录。因为每次从类路径中取文件会比较慢,因此在采用fatjar布署的生产环境中,这种方式非常有用。
在开发环境下,这可能会引出一个问题,因为在服务器运行时,如果你更新了静态内容,缓存中的文件可能没有被同步更新。为了禁用文件缓存,可以用vertx.disableFileCaching系统属性为true。例如可以在IDE中设置运行时main类时进行配置。
跨源资源处理
跨源资源共享是一种允许资源从同一域中被请求或者是跨域访问。Vert.x-Web包含一个CorsHandler处理器,此处理器处理CORS协议。这是一个例子:
router.route().handler(CorsHandler.create("vertx\\.io").allowedMethod(HttpMethod.GET));
router.route().handler(routingContext -> {
// Your apphandlers
});
相关文章推荐
- Vert.x Web 模块(一)
- Vert.x Web模块(二)
- Vert.x Web模块(三)
- Vert.x Web模块(五)
- Vert.x Web模块(六)
- spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免重新启动web项目
- 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS
- 高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块
- PHP运行模式(cgi,fast-cgi,cli,web模块模式)
- 使用NetWeaver开发Web模块
- extjs4+sh+springmvc web系统的基础模块开发(一)-项目简介
- jfinal 按模块功能分类 一个web工程+多个java工程
- webpack3实战(4)打包带异步加载功能的模块
- eclipse上搭建maven多模块Java Web项目
- IIS7 404 模块 IIS Web Core 通知 MapRequestHandler 处理程序 StaticFile 错误代码 0x80070002
- Vert.x 集成第三方web服务 译<七>
- Webpack - CommonJs & AMD 模块打包器
- PHP运行模式cgi 、fast-cgi、cli 命令行、web模块模式
- eclipse上搭建maven多模块Java Web项目
- webpack打包之无依赖模块