gpt4 book ai didi

spring - 在 Spring MVC 中管理 HTML 资源(CSS、JS 文件)

转载 作者:行者123 更新时间:2023-12-02 13:58:10 27 4
gpt4 key购买 nike

是否可以在类似于 grails-resources 的 Spring MVC 中管理 HTML 资源?

与此类似:http://www.anyware.co.uk/2005/2011/09/12/optimising-your-application-with-grails-resources-plugin/

例如:在 Grails 中,模块被指定为

modules = {  
common {
resource url:"css/main.css"
resource url:"js/jquery.js"
}
}

在 HTML 中,这个标签是用模块名称指定的,用于加载所有文件。
<r:require module="common"/>

所以我想知道有什么方法可以在 Spring MVC 中使用 <mvc:resources> 做类似的事情或任何其他选择?

最佳答案

简短回答:肯定 .但我认为真正的问题是“如何?” :)

Spring MVC 是 Grails 构建的基础,所以它可以做 Grails 可以做的事情。 Grails-resources 只是 Grails 为帮助更轻松地开发工作而开发的实用程序。如果你想在 Spring 中做同样的事情,你必须做一些工作。

首先,Spring MVC 有一种公开资源的方法(reference,第 17.15.6 章,“配置资源服务”);例如:

<mvc:resources mapping="/images/**" location="/images/"/>

上面的行暴露了 [Web folder]/images/ 中的每个文件作为资源,可以通过网络浏览器请求。

其次,要像 Grails 一样简单地将资源嵌入到 HTML 中,您必须结合 Spring with some other view technologies ,如 sitemesh、freemarker/velocity/JSP...(Grails 在幕后为您做的)。而不是 chalice 标签 , 现在你有 freemarker 或 Velocity 的宏 .但我建议编写一些您自己的自定义宏,因为内置宏并不总是好的。

我使用过 Grails 和 Spring MVC。我很欣赏 Grails 为使开发人员的生活更轻松所做的努力,但使用 Spring 时情况有所不同。使用 Spring,您将编写更多代码,做出更多选择(在 Grails 中,它们被选为“默认”,如果您不想自定义,它们是“不可见的”)。作为返回,你是 强制 更加了解底层机制,这是一件好事。

我已经使用 sitemesh 进行布局,并使用 freemarker 作为 HTML 渲染引擎用于几个 Web 项目,它们运行良好。

更新:

我想澄清一下 mvc:resources不是您问题的完整答案。这只是 的一部分暴露 网页资源可供浏览器获取。对于 Grails,这已经是默认设置了,但对于 Spring 来说并非如此。您必须指定文件夹'images'中的内容是资源,并且可以通过url http://your-domain-name/context-name/images/image-name访问它们.话说,Spring 比 Grails 明确得多。

另一件事是模板引擎。在使用 Spring 时,Library Sitemesh 是一个流行的选择(它也是 Grails 的默认设置),所以它并没有太大的不同(主要是关于语法)。 模板引擎的主要目的是用动态数据“填充”您的 html ,我要给你看……一点点。

请注意,制作满足您示例的教程超出了答案的范围。此外,Spring 启用了许多相关的解决方案,这意味着不同的开发人员可能有不同的组织/配置方式。但是为了给你一个感觉,我会做一个简单的例子(我正在使用 freemarker 做这个例子):

在文件:common.ftl 中,我有:
<#macro commonInclude>
<script type="text/javascript" src="${rc.getContextUrl('/js/jquery.js')}"></script>
<link rel="stylesheet" type="text/css" href="${rc.getContextUrl('css/main.css')}" />
</#macro>

再加一点配置,然后在 View 文件中我可以调用:
<@common.commonInclude />

它会呈现你想要的代码。

如您所见,主要区别在于它们的语法。 Grails 允许更简洁的样式,而 Spring 为您提供更“明确”的样式,如果您想自定义事物,这将受益。
  • 奖励:如果您正在寻找 Grails layout 的替代品,快速搜索“Spring and Sitemesh”,您可能会找到它。
  • 关于spring - 在 Spring MVC 中管理 HTML 资源(CSS、JS 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694289/

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