Assets理解随笔

时间:2023-03-08 19:34:53
Assets理解随笔

在PlayFramework中应用

在Play框架中提供的都是动态文件响应,前端工作内容大部分是静态文件.Assets大概起的就是这个作用.

默认路径看 conf/routes 里:

# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)

#注释大意是静态文件从 /public  文件夹到 /assets 中URL路径.

规则声明HTTP GET请求 /assets/ 时映射到 Controllers.Assets.at 方法,该方法使用两个参数,告诉该方法 Path 路径和 file 文件.

缺省使用 /public/filename 路径,如果需要指定详细点,可以定义路由规则:

GET     /images/*file                 controllers.Assets.at(path="/public/images", file)
GET /styles/*file controllers.Assets.at(path="/public/styles", file)

使用assets逆向路由来避免hardocded(硬编码[百度百科词条])的URL,Assets.at也是一个普通的Action方法,因此你可以使用assets逆向路由,例如:

<link href="@routes.Assets.at("images/favicon.png")" rel="shortcut icon" type="image/png">

除了逆向路由的优点,使用Asset控制器的另外一个优点是内置的缓存支持以及和Http Entity Tag(Etag)的支持.从而允许客户端根据需要是否要从服务器请求资源还是可以使用Cached中的文件.

Assets这个从rails中发展出来的,可以看看[Ruby-China]中的介绍.