【发布时间】:2021-06-14 13:54:17
【问题描述】:
我想将图像保存到resources/static/photos 文件,但 Java/Kotlin 找不到它。不过它很好地找到了project/photos。
这是一段代码,在 Kotlin 中,但我认为这并不重要
override fun saveImage(imageFile: MultipartFile, id: String) {
val bytes = imageFile.bytes
val path = Paths.get(
"$imagesFolderPath$id.${imageFile.originalFilename.substringAfter('.')}")
Files.write(path, bytes)
}
我需要将其保存到 resources/static/photos 以便能够从 thymeleaf 访问它。
谢谢。
【问题讨论】:
-
在运行时,
resources文件夹是只读的。您不能在那里保存文件,它们必须保存在源文件的外部。 -
即使你让它工作,它也只会在你开发时工作。一旦你将你的应用程序打包为一个档案(jar / war / 不管),你就不能像这样将新文件添加到你的类路径中。您应该寻找替代模板解析器。
-
问题是
thymeleaf除了那些资源之外什么都看不到,java看不到那些资源。我该如何解决这个问题? -
通过添加另一个模板解析器。默认情况下,thymeleaf 附加了一个模板解析器,它只查看
resources。但是您可以添加尽可能多的替代模板解析器,它可以在您想要的任何地方查找模板。编辑:你很可能想要这样的东西:stackoverflow.com/questions/25156153/… -
您不需要额外的模板解析器来加载图像。将图像保存在文件系统的某个位置(不在 jar/war 中),然后有一个控制器再次为它们提供服务。
标签: java spring kotlin thymeleaf