您的位置:首页 > 其它

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

 

});

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息