如何使用 Spring MVC 和 Thymeleaf 添加静态文件

2024-05-12

我的问题是如何添加 CSS 和图像文件等静态文件,以便我可以使用它们。我正在使用 Spring MVC 和 Thymeleaf。我查看了有关此主题的各种帖子,但它们对我没有帮助,所以我才来问。根据这些帖子,我将 CSS 和图像文件放在resources/static/css and resources/static/images directory.

Under templates (under webapp/WEB-INF/templates) 是我所有 HTML 文件的存储位置,那些想要使用 CSS 和图像文件的文件。

我有以下内容LoginApplicationConfig文件。我包含了两个底部方法,以便我的 HTML 文件可以使用样式和图像文件:

@EnableWebMvc
@Configuration
@ComponentScan({ "com.myapp.spring.*" })
@Import(value = { LoginSecurityConfig.class })
public class LoginApplicationConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware{

    private ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }

    @Bean
      public ViewResolver viewResolver() {
        ThymeleafViewResolver resolver = new ThymeleafViewResolver();
        resolver.setTemplateEngine(templateEngine());
        resolver.setCharacterEncoding("UTF-8");
        return resolver;
    }

    @Bean
      public TemplateEngine templateEngine() {
        SpringTemplateEngine engine = new SpringTemplateEngine();
        engine.setEnableSpringELCompiler(true);
        engine.setTemplateResolver(templateResolver());
        return engine;
    }

    private ITemplateResolver templateResolver() {
        SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
        resolver.setApplicationContext(applicationContext);
        resolver.setPrefix("/WEB-INF/templates/");
        resolver.setTemplateMode(TemplateMode.HTML);
        return resolver;
    }

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/static/css").setCachePeriod(31556926);
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/static/images").setCachePeriod(31556926);
    }
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

}

然后在我的 index.html 文件中,我包含了以下行,这样我就可以包含样式文件(使用 thymeleaf):

<link rel="stylesheet" th:href="@{css/stylesmd.css}" type="text/css">

但我不断收到 stylesmd.css 无法加载的错误。

我的问题:

  1. 我的样式和图像文件的放置正确吗?也就是说,我应该专门将它们放入哪些文件夹中。我尝试了各种位置,例如在webapp and WEB-INF目录但这不起作用。
  2. 下面的两个方法是LoginApplicationConfig必需的?此外,我对在其中包含哪些内容感到有点困惑addResourceHandler(...)方法以及其中的内容addResourceLocations(...) method.
  3. 我对样式表(使用百里香)的引用正确吗?

我知道这个问题已经存在很多内容,但这对我不起作用,所以这就是我问的原因。


这就是我让它发挥作用的方法。 只需要一行就够了。

registry.addResourceHandler("/static/**").addResourceLocations("/static/");

And

<head>
    <link rel="stylesheet" type="text/css" href="/static/css/your.css" th:href="@{/static/css/your.css}"/>
</head>

如果仍然失败,请尝试将“模板”文件夹作为子文件夹移动到资源文件夹中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Spring MVC 和 Thymeleaf 添加静态文件 的相关文章

随机推荐

  • Facebook PHP API 登录时抛出异常

    我尝试使用 Facebook Graph API 登录并获取用户信息 我用来获取用户信息的代码以前可以工作 但今天我尝试使用 Facebook 登录 但 Facebook API 抛出此错误 未定义的偏移量 1 home vendor fa
  • 用 C# 启动 Windows 服务

    我想启动一个刚刚安装的Windows服务 ServiceBase ServicesToRun if bool Parse System Configuration ConfigurationManager AppSettings RunSe
  • 让 Django 提供可下载文件

    我希望网站上的用户能够下载路径被遮挡的文件 因此无法直接下载它们 例如 我希望 URL 是这样的 http example com download f somefile txt 在服务器上 我知道所有可下载的文件都位于该文件夹中 home
  • Native TF 与 Keras TF 性能比较

    我使用本机和后端张量流创建了完全相同的网络 但在使用多个不同参数进行了多个小时的测试后 仍然无法弄清楚为什么 keras 优于本机张量流并产生更好 稍微但更好 的结果 Keras 是否实现了不同的权重初始化方法 或者执行除 tf train
  • 如何使用 Azure CLI 命令获取虚拟机的公共 IP 地址

    我想在 Azure bash 命令行中获取特定虚拟机的公共 IP 地址 到目前为止我已使用此命令 但它返回网络接口信息 az vm list ip addresses g dev rg n dev vm 返回值 virtualMachine
  • 使用“magic_shell”食谱更新 $PATH

    我创建了两本食谱 java kevin 和 maven kevin 食谱 java kevin recipes default rb node default user vagrant node default user home home
  • 当key未知时如何获取js对象中的属性值

    我有一个对象数组 a 81 25 p 81 25 81 26 p 81 26 我想循环遍历数组并获取值p在每个元素中 for var key in a console log a key outputs 81 25 Object How d
  • 如何使用 XIconifyWindow 更改任务栏图标?

    我在 Linux 中编程 并在桌面上使用 X11 我想更改任务栏中最小化窗口的图像 我正在使用 Fluxbox 当用户单击最小化窗口时 我当前正在使用 XIconifyWindow 当用户最小化任务栏中的小方形图标时 如何控制它 Thank
  • JavaFx 中装饰且不可移动的舞台

    我想在 JavaFx 中创建一个装饰舞台 它也将不可移动 我正在从另一个控制器类创建这个阶段 我能够创造和展示舞台 但它是自由移动的 我怎样才能创建这个 非常感谢帮助和建议 我把打开新关卡的方法贴出来 private void addRec
  • 熊猫加入具有不同索引级别/日期时间的数据帧?

    嗨 我有两个 DataFrame 如下所示 dineType menuName unique columns date y m d
  • 将 geojson 文件下载到 jupyter 中的 folium 中

    我想要一张欧洲地图 作为 json 文件 这样我就可以使用 geojson 将其作为图层放置在 Folium 地图上 这样我就可以将我的数据集嵌入到其中 以显示欧洲哪个国家的酒精含量最高 我在从 GitHub 获取 json 文件以在 jy
  • Symfony:为什么 isInitialized 总是 false?

    我用教义查询了一个用户 customer this gt getDoctrine gt getRepository DemoUserBundle Customer gt find 1 但我得到了结果 顾客 1441 已初始化 错误的 ID
  • (如何)我可以抑制未找到包配置文件的警告吗?

    我正在尝试创建一个CMakeLists txt尝试查找的文件Qt5 如果失败 则尝试回退到Qt4安装 该脚本到目前为止有效 但如果出现以下情况我总会收到警告Qt5未安装 注意FindQt5 cmake是由提供Qt5并且仅当以下情况时才可用Q
  • 使用 Python 将列名称与 CSV 文件中的数据对齐

    这是我用来将数据写入 csv 文件的代码 with open temp csv a as fp a csv writer fp delimiter t data faceXpos faceYpos faceHeight faceWidth
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • 会话亲和性和粘性会话之间的区别?

    有什么区别会话关联性 and 粘性会话在负载平衡服务器的上下文中 我见过这些术语可以互换使用 但有不同的实现方式 在第一个响应中发送 cookie 然后在后续响应中查找它 cookie 表明要发送到哪个真实服务器 Bad如果您必须支持无 c
  • 找不到“C:\Microsoft.Cpp.Default.props”

    我在 Visual Studio 2013 中创建了一个项目 项目文件具有以下属性 工具版本 12 0 平台工具集 v120 我安装了 Visual Studio 2013 和 Microsoft Build Tools 2015 该项目使
  • 如何命名一段代码并在不同的方法中调用它?

    我使用 Grand Central Dispatch 方法在队列中执行我的应用程序 我在该队列的计算中决定按钮的框架 我希望我的应用程序重新绘制其屏幕并计算旋转后的新帧 这是我所做的一些伪代码解释 CGFloat a 123 b 24 di
  • 使用 Laravel Fluent 查询生成器从多个表中进行选择

    我正在重写一些 PHP MySQL 来与 Laravel 一起使用 我想做的一件事是使数据库查询更加简洁使用 Fluent 查询生成器 http laravel com docs database fluent但我有点迷失 SELECT p
  • 如何使用 Spring MVC 和 Thymeleaf 添加静态文件

    我的问题是如何添加 CSS 和图像文件等静态文件 以便我可以使用它们 我正在使用 Spring MVC 和 Thymeleaf 我查看了有关此主题的各种帖子 但它们对我没有帮助 所以我才来问 根据这些帖子 我将 CSS 和图像文件放在res