圣杯找不到我的资源



My Grails项目结构:

my-app/
    grails-app/
        <mostly typical grails-app structure>
        views/
            web/
                index.gsp
            app/
            admin/
            layouts/
                main.gsp
    <rest of project structure is like any other Grails app>

所以你可以看到,通常情况下,索引页位于 grails-app/views/index.gsp ,我把它放在 grails-app/views/web/index.gsp .

我的application.properties

app.grails.version=2.4.2
app.name=my-app
app.context=/
app.version=0.1

UrlMappings.groovy的一部分:

"/"(view:"/web/index")

我的main.gsp布局:

<!DOCTYPE html>
<html lang="en">
<head>
    <title><g:layoutTitle default="MyApp"/></title>
    <g:resource dir="css" file="myapp.css" />
    <g:layoutHead/> 
</head>
<body>
    <g:layoutBody/>
    <g:resource dir="js" file="myapp.js" />
</body>
</html>

我的index.gsp

<!DOCTYPE html>
<html>
<head>
    <meta name="layout" content="main"/>
</head>
<body>
    <h1>Hello!</h1>
</body>
</html>

当应用程序启动并且我在浏览器中查看它时,很明显找不到myapp.css,因为页面样式都是错误的。当我查看页面源代码时,我看到:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>MyApp</title>
    /css/myapp.css
    <meta name="layout" content="main"/>
</head>
<body>
    <h1>Hello!</h1>
    /js/myapp.js
</body>
</html>

所以听起来Grails接受了你的app.context,并将其用作所有资源的前缀。因为我没有正确连接某些东西,Grails只是将我的<g:resource>标签翻译成明文并将它们打印成HTML格式。

我想我的问题是:我需要做什么才能让Grails找到我的CSS/JS资源?

我不确定标签中的标签是否可以正常工作,所以这样写:

<link rel="stylesheet" href="${resource(dir:'css', file:'myapp.css')}" charset="utf-8"/>

根据文档,资源标签生成一个链接 (URI) 字符串。可以在href,JavaScript,Ajax调用等中使用。

使用脚本中的资源标签或链接标签将 css/js 加载到您的页面中,例如,

<link rel="stylesheet" href="<g:resource dir="css" file="myapp.css" />" charset="utf-8"/>

您也可以使用资源插件,我建议您使用它,因为它解决了目的并具有良好的文档

相关内容

  • 没有找到相关文章

最新更新