URL 对于 Grails 3 应用程序独立 WAR 中除索引以外的操作映射中断
URL Mapping broken for actions other than index in standalone WAR for Grails 3 App
我是 GRAILS 的新手,但我构建了一个简单的应用程序并尝试将其部署到 tomcat。
如果我 运行 应用程序使用:
grails prod run-app
一切正常。但是,如果我将它构建为 war 文件
grails prod war
然后将 war 包上传到 tomcat 服务器或 运行 直接像
java -Dgrails.env=prod -jar build\lib\app.war
然后我得到这种奇怪的行为,一开始一切似乎都很好,但每当我点击 link 进行索引以外的操作时,我都会收到 404 错误。
例如。
webapp:8080/employee WORKS
webapp:8080/employee/index WORKS
webapp:8080/employee/show/1 404 error
webapp:8080/department WORKS
webapp:8080/department/show/1 404 error
等等
在上面的例子中 webapp:8080/employee/show/1 肯定能找到,因为它已被列出并且 link 从索引中的 table 编辑。
我在追根究底时遇到了很多麻烦,因为我似乎无法从 运行ning war 文件中找到任何反馈,无论我 运行 它在 tomcat 或直接,即使我将环境移动到测试或开发。日志文件或标准输出中什么也没有。
这是我的 UrlMappings
package generico
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
// "/"(view:"/index")
"/"(controller:"employee", action:"index")
"500"(view:'/error')
"404"(view:'/notFound')
}
}
同样,如果我对任何环境执行"grails run-app",一切都绝对正常。
感谢任何帮助。谢谢。
我在使用 Grails 3.2.2 时遇到了同样的问题。
无法加载“/”。我正在使用命名空间,所以我的映射看起来像
"/"(namespace: 'corp', controller: 'index', action: 'index')
和
com.example.corp.IndexController {
static namespace = 'corp'
def index() {)
}
在使用 grails 运行-app 的任何环境中一切正常,但是当我 war 和 运行 时,它会给我一个错误页面。
我的问题出在 Grails 3.2.1 上。在我更新到 Grails 3.2.2 后,进行了 gradle 清理,然后重新打包,一切正常。
我是 GRAILS 的新手,但我构建了一个简单的应用程序并尝试将其部署到 tomcat。
如果我 运行 应用程序使用:
grails prod run-app
一切正常。但是,如果我将它构建为 war 文件
grails prod war
然后将 war 包上传到 tomcat 服务器或 运行 直接像
java -Dgrails.env=prod -jar build\lib\app.war
然后我得到这种奇怪的行为,一开始一切似乎都很好,但每当我点击 link 进行索引以外的操作时,我都会收到 404 错误。 例如。
webapp:8080/employee WORKS
webapp:8080/employee/index WORKS
webapp:8080/employee/show/1 404 error
webapp:8080/department WORKS
webapp:8080/department/show/1 404 error
等等
在上面的例子中 webapp:8080/employee/show/1 肯定能找到,因为它已被列出并且 link 从索引中的 table 编辑。
我在追根究底时遇到了很多麻烦,因为我似乎无法从 运行ning war 文件中找到任何反馈,无论我 运行 它在 tomcat 或直接,即使我将环境移动到测试或开发。日志文件或标准输出中什么也没有。
这是我的 UrlMappings
package generico
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
// "/"(view:"/index")
"/"(controller:"employee", action:"index")
"500"(view:'/error')
"404"(view:'/notFound')
}
}
同样,如果我对任何环境执行"grails run-app",一切都绝对正常。
感谢任何帮助。谢谢。
我在使用 Grails 3.2.2 时遇到了同样的问题。
无法加载“/”。我正在使用命名空间,所以我的映射看起来像
"/"(namespace: 'corp', controller: 'index', action: 'index')
和
com.example.corp.IndexController {
static namespace = 'corp'
def index() {)
}
在使用 grails 运行-app 的任何环境中一切正常,但是当我 war 和 运行 时,它会给我一个错误页面。
我的问题出在 Grails 3.2.1 上。在我更新到 Grails 3.2.2 后,进行了 gradle 清理,然后重新打包,一切正常。