【问题标题】:Loading CSS from Spring Controller从 Spring 控制器加载 CSS
【发布时间】:2016-05-29 01:18:19
【问题描述】:

在我的 UI 代码中,我有一个指向带有 href="url for spring controller" 的 CSS 样式表的链接。

我希望 Spring 控制器返回 UI 页面用于样式设置的 CSS 文件。

首先我想知道,这是否可能?其次,Spring 控制器需要返回什么?我是否需要返回 css 文件的 byte[] 表示形式并将其放入 ResponseEntity 中,还是在 Servlet 响应中使用某种输出流?

类似的东西?

@RequestMapping(value = "/getCSS/{userId}", method= RequestMethod.GET, produces={"text/css"})
@ResponseStatus(HttpStatus.OK)
public ??? getCSS(){
}

UI 代码和具有控制器的 Spring 应用程序不是同一个项目的一部分。

不同的用户有不同的样式,Spring 应用程序从数据库中获取用户的 css 文件。因此,css 文件不能简单地放在 /static 文件夹或 /resources 文件夹中,因为不同的用户会有不同的 css 文件。

【问题讨论】:

标签: java css spring controller


【解决方案1】:

您可以将静态资源(如果不必保护它们)放在您的 webapp 文件夹中。例如webapp/static/style.css

您可以通过以下方式获取此文件:localhost:8080/applicationName/static/style.css

【讨论】:

    【解决方案2】:

    控制器

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    @Controller
    public class WebController {
    
       @RequestMapping(value = "/staticPage", method = RequestMethod.GET)
       public String redirect() {
    
          return "redirect:/static/final.css";
       }
    }
    

    Webservlet.xml

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/static/" />
        <property name="suffix" value=".css" />
        </bean>
    
        <mvc:resources mapping="/static/**" location="/WEB-INF/static/" />
        <mvc:annotation-driven/>
    

    你也可以返回像html,jsp这样的页面

    【讨论】:

    • 这里 标签用于映射静态页面。映射属性必须是指定 http 请求的 URL 模式的 Ant 模式。 location 属性必须指定一个或多个具有静态页面的有效资源目录位置,包括图像、样式表、JavaScript 和其他静态内容。可以使用逗号分隔的值列表指定多个资源位置。
    【解决方案3】:

    如果资源在不同的项目中,您可以将该项目的名称存储在 applicationContext 中,并从您的视图${applicationScope.resourcesProject} 像这样引用它

    <link href="/${applicationScope.resourcesProject}/resources/css/style.css" rel="stylesheet" type="text/css"/>
    

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      相关资源
      最近更新 更多