@@ -18,7 +19,7 @@ import { SITE } from "@/config";
¯\_(ツ)_/¯
Page Not Found
Go back home
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 74067cec..a68d2301 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -11,6 +11,7 @@ import IconRss from "@/assets/icons/IconRss.svg";
import IconArrowRight from "@/assets/icons/IconArrowRight.svg";
import { SITE } from "@/config";
import { SOCIALS } from "@/constants";
+import { getUrl } from "@/utils/getUrl";
const posts = await getCollection("blog");
@@ -28,7 +29,7 @@ const recentPosts = sortedPosts;
全部文章
或了解
关于我
。
@@ -121,7 +122,7 @@ const recentPosts = sortedPosts;
}
-
+
全部文章
diff --git a/src/utils/getUrl.ts b/src/utils/getUrl.ts
new file mode 100644
index 00000000..f0daea7f
--- /dev/null
+++ b/src/utils/getUrl.ts
@@ -0,0 +1,19 @@
+/**
+ * 获取带 base 路径的 URL
+ * @param path - 路径,如 "/" 或 "/posts.html"
+ * @returns 完整路径,如 "/MyBlog/" 或 "/MyBlog/posts.html"
+ */
+export function getUrl(path: string): string {
+ const base = (import.meta.env.BASE_URL || "/").replace(/\/$/, "");
+ // 如果 path 已经是完整 URL 或以 # 开头,直接返回
+ if (path.startsWith("http") || path.startsWith("#")) {
+ return path;
+ }
+ // 确保 path 以 / 开头
+ const normalizedPath = path.startsWith("/") ? path : `/${path}`;
+ // 如果 base 是 /,直接返回 path
+ if (base === "") {
+ return normalizedPath;
+ }
+ return `${base}${normalizedPath}`;
+}