应用程序布局标准化是保持开发简单化的保证。
app目录
这个目录包含了所有可执行的代码:java源代码和view模板。
我的.class文件去哪里了?
请不要寻找编译过的java类。框架只在运行时才编译java源代码,而且只会把编译后类文件缓存到tmp目录下。在play框架里,可执行文件是.java源文件,而不是编译后的类。
在app目录下有三个标准包,分别对应mvc架构的三个层,你也可以添加你自己的包,如utils包。
另外,views包下,还可以有以下子包:
- tags, 主应用程序的标签包,比如可重用的模板片段。
- 每个控制器的views文件夹–按照约定,每个控制器相关的模板都要存储到他们自己的子包里。
public目录
存储在public目录的资源都是些可以直接被web服务器向外发布的静态资产。
这个目录共分为三个标准的子目录:分别存储images, CSS和JavaScript文件。 你应用试着像这个标准一样组织你的静态资产,以保持所有play应用程序的一致性。
默认情况下,/public目录被映射到/public URL路径,你也可以自行修改映射到其他目录,甚至为你的静态资产使用多个目录。
conf目录
conf目录包含了所有应用程序的配置文件。
这里有两个必须的配置文件,application.conf和routes:
- application.conf,应用程序最主要的配置文件。它包含了标准的配置参数。
- routes, 路由定义文件。
如果你需要增加一些特定配置选项,直接在application.conf中进行添加比较易于管理,文件的配置选项可在程序代码中通过Play.configuration.get(“propertyName”)方法读取。 当你创建一个新的应用程序时,play new命令将从$PLAY_HOME/resources/application-skel/conf目录复制一个默认的配置文件。
如果其他库需要一个指定的配置文件,那么请把将该指定的配置文件放到conf目录(这个目录是play指定的java 类路径 ClassPath),并在application.conf中用@include进行指定。
注意,这是一个尚处在试验阶段的特性,目前或许还不能正常工作。尤其是占位符和框架id还不能正确处理这个特性。
比如,如果你在conf/mime-types.conf文件里定义了一个附加的MIME类型:
# Web fonts
mimetype.eot = application/vnd.ms-fontobject
mimetype.otf = application/octet-stream
mimetype.ttf = application/octet-stream
mimetype.woff = application/x-font-woff
通过在application.conf文件里添加下面这条代码就可以把这些配置包含进来:
@include.mime = mime-types.conf
lib目录
这个目录包含了所有应用程序需要的标准java库,他们会自动添加到java classpath里。