forked from zhongyidian/food-add-edu
- 移除旧的 CSS 文件,改用 Tailwind CSS 进行样式管理 - 更新 tsconfig 和 Vite 配置以支持路径别名 - 添加 Node 类型定义以增强 TypeScript 支持
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
// 图片资源映射 - 使用静态导入确保构建时包含所有图片
|
|
const imageModules = import.meta.glob(
|
|
"../assets/images/**/*.{png,jpg,jpeg,gif,svg,webp}",
|
|
{
|
|
eager: true,
|
|
},
|
|
);
|
|
|
|
// 访问静态图片 - 使用静态导入确保构建后路径正确
|
|
export const getStaticImage = (path: string) => {
|
|
try {
|
|
// 确保路径以正确的格式结尾
|
|
const imagePath =
|
|
path.endsWith(".png") ||
|
|
path.endsWith(".jpg") ||
|
|
path.endsWith(".jpeg") ||
|
|
path.endsWith(".gif") ||
|
|
path.endsWith(".svg") ||
|
|
path.endsWith(".webp")
|
|
? `../assets/images/${path}`
|
|
: `../assets/images/${path}.png`;
|
|
|
|
// 使用静态导入的模块
|
|
const module = imageModules[imagePath];
|
|
if (module && typeof module === "object" && "default" in module) {
|
|
return (module as { default: string }).default;
|
|
}
|
|
|
|
// 回退到 URL 方式
|
|
return new URL(imagePath, import.meta.url).href;
|
|
} catch (error) {
|
|
console.error("Failed to load image:", path, error);
|
|
return "";
|
|
}
|
|
};
|
|
|
|
// 获取背景图片的专用函数
|
|
export const getBackgroundImage = (path: string) => {
|
|
const imageUrl = getStaticImage(path);
|
|
return imageUrl ? `url(${imageUrl})` : "none";
|
|
};
|
|
|
|
// 获取 public 文件夹中的资源路径(用于 Word 文档等)
|
|
export const getPublicPath = (path: string) => {
|
|
// 移除开头的斜杠(如果有)
|
|
const cleanPath = path.startsWith("/") ? path.slice(1) : path;
|
|
// 使用 Vite 的 BASE_URL 环境变量来处理基础路径
|
|
return `${import.meta.env.BASE_URL}${cleanPath}`;
|
|
};
|