问题标签 [static-resource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7672 浏览

maven - 通过 Spring Boot 在 jar 文件中提供静态资源

我正在通过多个 Maven 模块开发一个解决方案来处理不同的有界上下文。

由于 Spring Boot,每个模块都公开了自己的 rest api,并且所有这些都托管在一个 maven 模块中,该模块具有一个由 @SpringBootApplication 注释的类。简化的项目结构如下所示:

在面对复合 UI 时,我尝试使用相同的模式:一个保留布局、静态资源的地方,同时,html 页面属于保存在其 maven 模块中的每个有界上下文。

问题是我在 spring boot doc 中发现没有办法从其他 jar 文件中提供静态资源。

是否有任何解决方案来获得此功能,或者这里是否存在任何架构错误?或者弹簧之外的东西(例如覆盖)是解决方案?

0 投票
1 回答
719 浏览

spring - 带有资源处理程序的spring boot错误页面

tl; dr:如何为 Spring Boot 错误页面启用 Spring 的 ResourceUrlEncodingFilter?

(使用 spring boot 1.3.7.RELEASE 和 Spring Framework/MVC 4.2.4.RELEASE 时写的问题)

一些背景知识:我们有一个相当标准的 spring boot/spring webmvc 项目,使用 Thymeleaf 作为视图层。我们启用了开箱即用的 spring boot 资源链来服务静态资产。

我们的 thymeleaf 视图具有标准的 url 编码语法,例如<script th:src="@{/js/some-page.js}"></script>. 这依赖于 Springorg.springframework.web.servlet.resource.ResourceUrlEncodingFilter将 url 转换为适当版本的 url,例如/v1.6/js/some-page.js.

我们的错误处理是通过以下方式完成的:

  • 环境server.error.whitelabel.enabled=false
  • 子类化spring boot的默认值BasicErrorController以覆盖public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response)
  • 依靠我们已经配置的 thymeleaf 视图解析器来呈现我们的自定义错误页面

问题是:ResourceUrlEncodingFilter 没有应用于我们的错误页面。我认为缺少为 ERROR 调度请求注册的过滤器,但这对我来说并不明显:a)如何在 spring boot 中自定义它;b)为什么默认情况下没有这样做。

更新1:

问题似乎与OncePerRequestFilterERROR 调度程序的组合有关。即:

  • ResouceUrlEncodingFilter默认情况下不绑定到 ERROR 调度程序。虽然覆盖这很混乱,但这并非不可能,但由于以下原因无济于事:
  • OncePerRequestFilter(parent of ResourceUrlEncodingFilter) 在 Request 上设置一个属性,表明它已被应用,以便不重新应用。然后它包装响应对象。但是,当发送 ERROR 时,不会使用包装的响应,并且由于请求属性仍然存在,过滤器不会重新包装。

更糟糕的是,定制的逻辑boolean hasAlreadyFilteredAttribute不能被请求覆盖。OncePerRequestFilterdoFilter()方法是final,并且getAlreadyFilteredAttributeName()(扩展点)无权访问当前请求对象来获取调度程序。

我觉得我一定错过了什么;在 Spring Boot 的 404 页面上使用版本化资源似乎是不可能的。

更新 2:一个有效但混乱的解决方案

这是我能想到的最好的,但看起来仍然非常混乱:

更好的解决方案?

0 投票
1 回答
417 浏览

spring-boot - Spring Boot 不加载静态资源取决于 RequestMapping 深度

我在春季启动应用程序的静态文件夹下加载文件时遇到问题。

问题是 RequestMapping 深度超过 2 喜欢@RequestMapping("spring/xyz")

单一深度效果很好,@RequestMapping("spring")但 2 深度以“弹簧”为前缀,它连接 localhost:8080/spring/“静态文件夹”

我在这里找到了一半的解决方案

我的文件夹结构是:

案例1:效果很好

案例2:效果很好

案例3:不工作

它被称为'http//localhost/spring/xyz/css/some.css'

案例3:效果很好

案例4:效果很好

有用!!即使我使用../../相对路径。我不知道为什么会这样。

实际上我不太了解 Spring Boot API,我考虑使用 ViewResoler 加载其他静态资源。

我想知道这个加载路径机制以及如何通过 RequestMapping url 路径链接来调用“http//localhost/spring/xyz/css/some.css”

我感谢任何答案~!

我在spring.io上从“metalhead”和“Brian Clozel”中提到了同样的问题

0 投票
2 回答
1721 浏览

spring-mvc - 如何理解 SpringMVC 资源链包含我没有设置的解析器

我的 dispatcher.xml 设置资源链如下:

当我调试代码时,我发现资源链有两个PathResourceResolver,为什么?谢谢! ResourceHttpRequestHandler 状态

0 投票
1 回答
271 浏览

c# - 如何从另一个项目中定义的 c# 项目设置(属性)定义静态 wpf 资源

位于 App.xaml 中的以下代码定义了一个静态应用程序范围的资源,我成功地将其绑定到一个列表框控件。

但是,我想做同样的事情,而是使用另一个项目中定义的属性。像这样的东西(不可编译):

欢迎任何建议,谢谢。

0 投票
1 回答
678 浏览

spring-boot - Spring Boot MVC 请求映射覆盖静态资源

我想在 Spring Boot 中有休息控制器来处理所有这样的请求:“/{arg}”,除了“/sitemap.xml”。我怎样才能做到这一点?

0 投票
1 回答
406 浏览

spring-boot - Spring boot:拦截对静态托管资源文件的请求

在我的 Spring Boot 应用程序中,我在我的应用程序外部托管文件。通过 addResourceHandler() 方法这样做。

此外,我需要通过检查几个会话属性来验证对这些文件的访问。为此,我添加了一个拦截器。

问题:在拦截时,在拦截器的 preHandle 中,通过代理路由器 apache 设置部署在 LINUX 上时,HttpServletRequest 没有任何会话信息(无会话)。但是,当直接从我的 IDE 在 Windows 上运行时,HttpServletRequest 确实具有正确的会话。

下面是代码:

以下是我的 apache conf 设置:

关于我缺少什么的任何标题?

0 投票
1 回答
571 浏览

java - 提供静态资源时请求方法 GET 不支持错误

静态资源根本没有加载,当它加载时出现这个错误我不知道问题出在哪里,这是我的代码

web.xml

客户-servlet.xml

createOffer.jsp

当我调用 createOffer.jsp 表单时出现没有这样的样式

和控制台上的错误

如果我从 url 调用静态资源,这是结果

这是 pox.xml 文件,如果它有用的话

0 投票
0 回答
15 浏览

css - 静态资源管理:按需组合资源是否可行?

假设它们以语义方式工作,以下三者之间的性能差异是什么:

和:

和:

从服务器负载和用户延迟的角度来看,根据请求组合资源是否有任何主要缺点?

0 投票
4 回答
6132 浏览

css - Thymeleaf + Spring-Boot - 为什么我不能访问静态资源?

我的项目树如下所示:

在此处输入图像描述

我现在可以访问模板,但无法加载 CSS、图像和 JS 等静态资源。

我有一个common.html片段,我在其中声明了所有静态资源,例如:

common.html我像这样包含的标题片段:

布局文件default.html

另外,在我的application.properties文件中,我有以下条目:

但我不断收到同样的No mapping found信息。

我在这里没有看到什么?