diff --git a/src/main/java/run/halo/app/plugin/SharedApplicationContextHolder.java b/src/main/java/run/halo/app/plugin/SharedApplicationContextHolder.java
index 4e98468e2..4f6c9cb36 100644
--- a/src/main/java/run/halo/app/plugin/SharedApplicationContextHolder.java
+++ b/src/main/java/run/halo/app/plugin/SharedApplicationContextHolder.java
@@ -6,6 +6,7 @@ import org.springframework.stereotype.Component;
import run.halo.app.extension.DefaultSchemeManager;
import run.halo.app.extension.ExtensionClient;
import run.halo.app.extension.ReactiveExtensionClient;
+import run.halo.app.infra.ExternalUrlSupplier;
/**
*
This {@link SharedApplicationContextHolder} class is used to hold a singleton instance of
@@ -61,6 +62,8 @@ public class SharedApplicationContextHolder {
DefaultSchemeManager defaultSchemeManager =
rootApplicationContext.getBean(DefaultSchemeManager.class);
beanFactory.registerSingleton("schemeManager", defaultSchemeManager);
+ beanFactory.registerSingleton("externalUrlSupplier",
+ rootApplicationContext.getBean(ExternalUrlSupplier.class));
// TODO add more shared instance here
return sharedApplicationContext;
diff --git a/src/main/java/run/halo/app/theme/SiteSettingVariablesAcquirer.java b/src/main/java/run/halo/app/theme/SiteSettingVariablesAcquirer.java
index 413a57cfa..4713fa7a9 100644
--- a/src/main/java/run/halo/app/theme/SiteSettingVariablesAcquirer.java
+++ b/src/main/java/run/halo/app/theme/SiteSettingVariablesAcquirer.java
@@ -1,9 +1,11 @@
package run.halo.app.theme;
import java.util.Map;
+import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
+import run.halo.app.infra.ExternalUrlSupplier;
import run.halo.app.infra.SystemConfigurableEnvironmentFetcher;
import run.halo.app.theme.finders.vo.SiteSettingVo;
@@ -14,20 +16,19 @@ import run.halo.app.theme.finders.vo.SiteSettingVo;
* @since 2.0.0
*/
@Component
+@AllArgsConstructor
public class SiteSettingVariablesAcquirer implements ViewContextBasedVariablesAcquirer {
private final SystemConfigurableEnvironmentFetcher environmentFetcher;
-
- public SiteSettingVariablesAcquirer(SystemConfigurableEnvironmentFetcher environmentFetcher) {
- this.environmentFetcher = environmentFetcher;
- }
+ private final ExternalUrlSupplier externalUrlSupplier;
@Override
public Mono