Play 框架是一个完整的 Web 应用开发框架,覆盖了 Web 应用开发的各个方面。在项目开发中,我们也会使用到Play 框架,不过有时候在使用的过程中java play框架读取routes报错什么原因?下面来我们就来给大家讲解一下。
解决思路:
1、检查routes文件中是否有这个路由
2、检查该路由跳转到的html页面中是否引用不存在的地址
原因:
play框架属于前后端不分离的框架,会检测html页面中标签和引用的地址是否存在语法错误,就是因为html中引入的图片地址不存在才一直报找不到路由的错误
注意:被注释的代码也会检测,所以用不到的代码最好直接删掉
play从一个应用程序里加载模块?
位于应用程序/modules 目录下的模块是被自动加载,也可使用 dependency management system 来自动管理你的应用程序模块。
1. 从模块加载默认的 routes
模块可以提供一个默认的 routes 文件。使用如下的声明,可以把它加载到主应用程序的 routes 文件里:
# Import the default CRUD routes GET /admin module:crud
下面的声明将加载所有的可用的模块:
GET / module:*
2. 为模块增加文档说明
简单为模块添加 documentation/manual/home.textile ,可以为模块增加一个文档页面。play 的文档使用的就是相同的 Textile 语法,见:
${play.path}/documentation/manual/
如果你正在运行一个 play 应用程序,并且使用了多个带有文档的模块,那么本地的 play 文档(http://localhost:9000/@documentation)将包含这些模块的文档页面链接,具体位置是侧边栏的 Installed Modules 。
3. 使用模块仓库
module repository 定义了所有的通用分布式模块。一个模块可以拥有多个版本。你必须检查模块的文档,以确定哪个版本适用于你的框架版本。
使用 play list-modules 命令可以浏览模块仓库里的所有模块:
gbo-mac:~ guillaume$ play list-modules ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.2, http://www.playframework.org ~ ~ You can also browse this list online at http://www.playframework.org/modules ~ ~ [bespin] ~ Bespin online editor ~ http://www.playframework.org/modules/bespin ~ Versions: 1.0, 1.0.1 ~ ~ [cobertura] ~ Cobertura ~ http://www.playframework.org/modules/cobertura ~ Versions: 1.0 ...
在本地使用 play install {module}-{version}命令可以在本地安装模块。在本地安装模块后就可以模块用于不同的应用程序, 而且不需要为每个应用程序复制备份。这对于大型模块来讲非常有用,这与框架扩展非常相似。
比如,在框架里安装 Scala 支持:
play install scala-head
我们约定 head 版本就模块的不稳定版本。你也可通过省略版本信息安装默认的模块版本,如:
play install scala
通过这种方式安装的模块将会直接下载模块到你的框架安装目录下的/modules 文件夹里。
使用—path 选项可以更改默认安装路径:
play install gwt --path=my-project
4. 贡献新模块到模块仓库里
先决条件
要注册一个新模块,以下步骤是必须的:
一个 Google 帐号,用于向 Google Group 传送内容
一个开发者 log-in OpenID (使用 Google account 也行)
模块名称要符合 [a-zA-Z]+ 正则表达式要求
模块必须包含有 documentation
有模块源代码主页和报送 bug 的渠道,比如 GitHub, Google Code 或 Launchpad 项目。
模块注册
使用 Google account 作为 OpenID,需要使用完整的 URL,步骤为:
在 https://www.playframework.com/modules 页面里, 在 Developer login 下输入 https://www.google.com/accounts/o8/id ,单击 Login 按钮
登录到你的 Google account
在 Developer login 下创建一个完整的 Google OpenID URL,如:
https://www.google.com/accounts/o8/id?id=BItOawk7q69CFhRarQIo
在 play-framework Google Group 页面里传送一个模块注册请求,比如:
Subject: Module registration request: {module name} Module name: jqueryui Display name: jQuery UI Description: Working examples of jQuery UI widgets, integrated with a Play application. Project home page: https://github.com/hilton/jqueryui-module OpenID: https://www.google.com/accounts/o8/id?id=BItOawk7q69CFhRarQIo
当模块成功注册后,就可以发布模块了。
这样我们就可以完成play从一个应用程序里加载模块的操作了,其实模块就是另一个 play 应用程序,虽然看起来操作比较复杂,但是只要逻辑清晰,还是不难的!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: