Class StaticSiteHelper
java.lang.Object
io.leandev.appfuse.docs.StaticSiteHelper
Docusaurus 靜態網站工具類
提供靜態網站托管所需的各種 utility 方法。
功能特性
- BaseUrl 替換:將建置時的路徑替換為部署時的實際路徑
- URL 替換:將建置時的域名替換為部署時的實際域名
- 自動偵測:若未設定 URL,可從請求中自動偵測
使用範例
// 在 Controller 中使用
@Controller
public class StaticSiteController {
@Value("${docs.source-baseUrl}")
private String sourceBaseUrl;
@Value("${docs.basename}")
private String basename;
@GetMapping("/**")
public ResponseEntity<String> handleRequest(HttpServletRequest request) {
String html = readHtmlFile(...);
// 執行路徑替換
html = StaticSiteHelper.processHtml(
html, sourceBaseUrl, basename,
sourceUrl, siteUrl, basename, request
);
return ResponseEntity.ok(html);
}
}
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringbuildTargetUrl(String siteUrl, String basename, jakarta.servlet.http.HttpServletRequest request) 建構目標 URLstatic StringbuildUrlFromRequest(jakarta.servlet.http.HttpServletRequest request) 從 HTTP 請求中建構 URLstatic boolean判斷是否為 HTML 檔案static boolean判斷是否為 Sitemapstatic StringprocessHtml(String html, String sourceBaseUrl, String targetBasename, String sourceUrl, String siteUrl, String basename, jakarta.servlet.http.HttpServletRequest request) 處理 HTML 內容static StringprocessSitemap(String sitemap, String sourceUrl, String siteUrl, String basename, jakarta.servlet.http.HttpServletRequest request) 處理 sitemap.xml 內容static StringresolveFilePath(String servletPath) 解析路徑為實際檔案路徑
-
Constructor Details
-
StaticSiteHelper
public StaticSiteHelper()
-
-
Method Details
-
processHtml
public static String processHtml(String html, String sourceBaseUrl, String targetBasename, String sourceUrl, String siteUrl, String basename, jakarta.servlet.http.HttpServletRequest request) 處理 HTML 內容
執行 baseUrl 和 URL 替換。
- Parameters:
html- HTML 內容sourceBaseUrl- 原始 baseUrl(建置時使用,對應 Docusaurus 的 baseUrl)targetBasename- 目標路徑(部署時使用,等同於 Spring server.servlet.context-path)sourceUrl- 原始完整 URL(建置時使用,對應 Docusaurus 的 url,可為 null)siteUrl- 部署網域(protocol + domain,可選包含專案前綴 path;若為 null 則從 request 自動偵測)basename- 部署路徑(與 targetBasename 相同,用於組合完整 URL)request- HTTP 請求(用於自動偵測 URL)- Returns:
- 處理後的 HTML
-
processSitemap
public static String processSitemap(String sitemap, String sourceUrl, String siteUrl, String basename, jakarta.servlet.http.HttpServletRequest request) 處理 sitemap.xml 內容- Parameters:
sitemap- sitemap.xml 內容sourceUrl- 原始完整 URL(建置時使用)siteUrl- 部署網域(protocol + domain,可選包含專案前綴 path;若為 null 則從 request 自動偵測)basename- 部署路徑(用於組合完整 URL)request- HTTP 請求- Returns:
- 處理後的 sitemap
-
buildTargetUrl
-
buildUrlFromRequest
從 HTTP 請求中建構 URL
自動偵測 scheme、domain、port 和 context path。
- Parameters:
request- HTTP 請求- Returns:
- 完整 URL
-
resolveFilePath
-
isHtml
-
isSitemap
判斷是否為 Sitemap- Parameters:
path- 檔案路徑- Returns:
- 是否為 sitemap.xml
-