gpt4 book ai didi

angularjs - Angular html5mode刷新的Grails UrlMappings

转载 作者:行者123 更新时间:2023-12-02 15:52:22 28 4
gpt4 key购买 nike

我有一个在Angular中使用Grails开发的Web应用程序,后面提供了REST服务调用,还提供了单页面应用程序的根页面以及定义ui-router的模板html文件。该应用程序将html5mode设置为true。为了使重新加载生效,我将映射添加到UrlMappings.groovy:

"/app1/**"(view:"/app1/index")
/app1是应用程序的基本URL,/app1/index将由grails-app/view/app1/index.gsp提供服务,但这会导致问题,因为所有模板Url都是相对编码的,这意味着它们在Url中也具有前缀/app1

理想情况下,我想为/app1/**.html映射,该映射仍将所有模板Url映射到web-app/app1下的html文件。但是我找不到有关如何实现此目标的信息。我试图添加

static excludes = ["/**.html"]

但这也不起作用。

无论如何,除了重新构造动态网址和模板文件网址以迫使它们使用完全不同的前缀之外,其他方式都可以解决吗?

最佳答案

您的静态资源可通过Servlet上下文使用。因此,您可以创建一个 Controller 或特征以混入映射到您的任何静态模板的现有 Controller 中。

/**
* Render some static content for AngularJS consumption from public folder e.g. "/templates/home.html"
*/
def renderStatic(String fileName) {
try {
response.outputStream << getServletContext().getResourceAsStream(fileName)
response.outputStream.close()
} catch (e) {
render status: NOT_FOUND
}
}

关于angularjs - Angular html5mode刷新的Grails UrlMappings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267950/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com