当前位置: 首页 > 面试题库 >

Spring:在上下文根外部提供静态资源

索嘉石
2023-03-14
问题内容

在Web应用程序中,我需要提供位于应用程序上下文目录外部的静态内容(图像)。整个应用程序体系结构要求我使用Tomcat来执行此操作。我以为可以从Spring的<mvc:resources>应用程序URL和目录内容之间配置映射而受益。但是AFAIK的mapping属性仅处理上下文相关或类路径映射。因此,我想使用的是:

<mvc:resources location="/images/**" mapping="/absolute/path/to/image/dir"/>

不起作用。因为我宁愿避免编写简单的文件传输servlet,所以如果有人可以给我一些有关基于Spring的现有解决方案/解决方案的指针,我将感到非常高兴。

非常感谢。


问题答案:

<mvc:resources>可以从外部提供资源,你需要使用通常的Spring资源路径语法:

<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir/"/> 


 类似资料:
  • 我试图提供一个静态资源(css文件)。 我已经注册了位置和处理程序 所以Tomcat的记录器显示到资源的正确映射 将URL路径[/resources/**]映射到类型为[类org.springframework.web.servlet.resource.ResourceHttpRequestHandler]的处理程序上 当浏览器呈现视图时,检查器显示404错误,试图获取静态资源。 应用初始化器。J

  • 我正在开发一个由多个maven模块组成的解决方案,以处理不同的有界上下文。 由于spring boot,每个模块都公开了自己的rest api,所有这些都托管在一个maven模块中,并带有一个由@SpringBootApplication注释的类。简化的项目结构是这样的: 在面对复合 UI 时,我试图使用相同的模式:一个保留布局、静态资源的地方,同时,html 页面属于其 maven 模块中保留的

  • 在这上面开个头。文件说明: 默认情况下,Spring Boot将提供来自类路径中名为 /static(或 /public或 /resources或 /META-INF/resources)的目录或ServletContext根目录的静态内容。 并创建一个目录,将静态资源放在那里。当我运行应用程序时,我只得到404。当我删除EnableWebMvc时,资源将按预期提供。 在中添加: 所以我的问题是:

  • 我正在使用aws无服务器java容器将Jersey服务包装到aws Lambda中。我决定使用函数别名进行“测试”和“生产”阶段,最终指向lambda函数的不同版本。 我需要在中选择一些属性。基于该别名的属性文件,基本上是因为我需要与“test”或“prod”DB对话,或者使用不同的endpoint来调用外部web服务。 为此,我需要调用Context对象的方法getInvokedFunction

  • 应为: 图像显示问题 它在使用嵌入式Tomcat时工作良好 然而,该问题中的建议似乎并没有解决我的问题。我不确定Tomcat xml文件。 我创建了一个简单的示例应用程序,并遵循了Spring Boot文档中的步骤。 在这个github repo中可以看到示例代码以及再现问题的步骤:https://github.com/jgraham0325/spring-boot-war-context-iss

  • Spring boot不提供放置在jar中的静态文件。 我有一个后端应用程序,我决定添加前端。设置任务以将静态前端文件复制到 。在SO上经历了一堆答案,他们都建议静态内容(索引.html,.js和.css文件)应该驻留在或下,我都尝试过。我打开构建的.jar,静态文件在那里,但是使用启动应用程序.jar并打开给了我默认的白标错误页面。我的应用程序工作,因为我可以访问我在其上运行的API。应用程序没