Spring Boot如何将资源委派给CDN?

sma*_*ufo 5 java cdn spring-mvc cloudflare spring-boot

在春季启动中,我包括了自己的CSS或js,如下所示:

<link rel="stylesheet" media="screen" th:href="@{/static/css/main.css}"/>
<script th:src="@{/static/js/modernizr.js}"></script>
<img th:src="@{/static/images/home_user.jpg}" />
Run Code Online (Sandbox Code Playgroud)

生成的html是这样的:

<link rel="stylesheet" media="screen" href="/static/css/main-c9079afb84af98a640f97fbed5759777.css" />
<script src="/static/js/modernizr-bf2f96e6233de3d8c0346085ac28248a.js"></script>
<img src="/static/images/home_user-378972abb38069e9b18d9637bc052e3c.jpg">
Run Code Online (Sandbox Code Playgroud)

Spring将对这些文件进行签名,并将签名附加为文件名。它运作良好,每个HTTP请求都会在春季启动并提供这些CSS / JS文件。但我希望CDN可以提供这些CSS / JS 甚至Webjar资源。

我申请一个cloudflare帐户,添加一个static.mysite.comas A地址,然后指向我的服务器,如下所示:

云耀斑

所有static.mysite.com请求都将首先发送到cloudflare,如果找不到,请访问我的服务器。

我希望spring boot将prepend所有static资源(JS / CSS / webjars)分配给http://static.mysite.com/,以便输出HTML变成这样:

<link rel="stylesheet" media="screen" href="http://static.mysite.com/static/css/main-c9079afb84af98a640f97fbed5759777.css" />
<script src="http://static.mysite.com/static/js/modernizr-bf2f96e6233de3d8c0346085ac28248a.js"></script>
<img src="http://static.mysite.com/static/images/home_user-378972abb38069e9b18d9637bc052e3c.jpg">
Run Code Online (Sandbox Code Playgroud)

但我不知道如何做到这一点。

有人可以给些提示吗?谢谢。

春季启动1.4.5

(如果不是一个好主意,请纠正我)