更新运行时资源查找路径
This commit is contained in:
@@ -251,7 +251,7 @@ export async function copyPreCacheFromResources(): Promise<boolean> {
|
||||
path.join(app.getAppPath(), 'voice-preview-cache'),
|
||||
path.join(app.getAppPath().replace(/\.asar$/, '.asar.unpacked'), 'voice-preview-cache'),
|
||||
// 开发环境
|
||||
path.join(process.cwd(), 'electron/resources/voice-preview-cache'),
|
||||
path.join(process.cwd(), 'packaging/resources/voice-preview-cache'),
|
||||
// 备选路径
|
||||
path.join(process.resourcesPath, 'voice-preview-cache'),
|
||||
path.join(process.resourcesPath, '../voice-preview-cache'),
|
||||
|
||||
@@ -144,8 +144,12 @@ function getZitiDir(): string {
|
||||
console.warn('[FontManager] 所有 ziti 路径都不存在,返回默认路径');
|
||||
return path.join(fallbackRoot, 'resources-bundles', 'ziti');
|
||||
} else {
|
||||
// 开发环境:ziti 在项目根目录
|
||||
// 开发环境:ziti 在 packaging/vendor/ziti
|
||||
const appRoot = getAppRoot();
|
||||
const devZitiDir = path.join(appRoot, 'packaging', 'vendor', 'ziti');
|
||||
if (fs.existsSync(devZitiDir)) {
|
||||
return devZitiDir;
|
||||
}
|
||||
return path.join(appRoot, 'ziti');
|
||||
}
|
||||
}
|
||||
@@ -251,7 +255,11 @@ function scanZitiFonts(): any[] {
|
||||
*/
|
||||
function getBundledFonts(): any[] {
|
||||
const appRoot = getAppRoot();
|
||||
const metadataFile = path.join(appRoot, 'fonts', 'bundled', 'fonts_metadata.json');
|
||||
const metadataCandidates = [
|
||||
path.join(appRoot, 'packaging', 'vendor', 'fonts', 'bundled', 'fonts_metadata.json'),
|
||||
path.join(appRoot, 'fonts', 'bundled', 'fonts_metadata.json'),
|
||||
];
|
||||
const metadataFile = metadataCandidates.find(file => fs.existsSync(file)) || metadataCandidates[0];
|
||||
|
||||
try {
|
||||
if (!fs.existsSync(metadataFile)) {
|
||||
@@ -554,6 +562,9 @@ function getBundledFontDirs(): string[] {
|
||||
pushIfExists(path.join(bundleRoot, 'fonts', 'ziti'));
|
||||
}
|
||||
|
||||
pushIfExists(path.join(appRoot, 'packaging', 'vendor', 'ziti'));
|
||||
pushIfExists(path.join(appRoot, 'packaging', 'vendor', 'fonts'));
|
||||
pushIfExists(path.join(appRoot, 'packaging', 'vendor', 'fonts', 'ziti'));
|
||||
pushIfExists(path.join(appRoot, 'ziti'));
|
||||
pushIfExists(path.join(appRoot, 'resources-bundles', 'ziti'));
|
||||
pushIfExists(path.join(appRoot, 'resources-bundles', 'fonts'));
|
||||
|
||||
@@ -79,6 +79,7 @@ function getBundledZitiDirs(): string[] {
|
||||
};
|
||||
|
||||
if (isDev) {
|
||||
pushIfExists(path.join(process.env.APP_ROOT || process.cwd(), 'packaging', 'vendor', 'ziti'));
|
||||
pushIfExists(path.join(process.env.APP_ROOT || process.cwd(), 'ziti'));
|
||||
return dirs;
|
||||
}
|
||||
@@ -4875,14 +4876,17 @@ ${subtitleText}
|
||||
let defaultPath = "";
|
||||
|
||||
// 尝试查找bgm目录
|
||||
// 开发环境: 项目根目录/bgm
|
||||
// 生产环境: resources/app.asar.unpacked/bgm (由asarUnpack解压)
|
||||
// 开发环境: packaging/vendor/bgm
|
||||
// 生产环境: resources-bundles/bgm
|
||||
const possiblePaths = [
|
||||
path.join(process.cwd(), 'packaging', 'vendor', 'bgm'),
|
||||
AppEnv.resourceBundleRoot ? path.join(AppEnv.resourceBundleRoot, 'bgm') : '',
|
||||
path.join(process.cwd(), 'resources-bundles', 'bgm'),
|
||||
path.join(process.cwd(), 'bgm'),
|
||||
path.join(process.resourcesPath, 'app.asar.unpacked', 'bgm'),
|
||||
path.join(process.resourcesPath, 'bgm'),
|
||||
path.join(app.getAppPath(), 'bgm')
|
||||
];
|
||||
].filter(Boolean);
|
||||
|
||||
for (const p of possiblePaths) {
|
||||
try {
|
||||
|
||||
@@ -10,7 +10,7 @@ import { app } from 'electron';
|
||||
|
||||
/**
|
||||
* 音效 ID 到文件名的映射
|
||||
* 这些音效文件存储在 resources/extra/common/soundEffects/ 目录下
|
||||
* 这些音效文件存储在 packaging/resources/common/soundEffects/ 目录下
|
||||
*/
|
||||
export const SOUND_EFFECT_FILES: Record<string, string> = {
|
||||
// 原有音效
|
||||
@@ -81,7 +81,7 @@ export function getSoundEffectsDir(): string {
|
||||
const isDev = !app.isPackaged;
|
||||
if (isDev) {
|
||||
// 开发模式:使用 app.getAppPath() 获取项目根目录
|
||||
return path.join(app.getAppPath(), 'electron/resources/extra/common/soundEffects');
|
||||
return path.join(app.getAppPath(), 'packaging/resources/common/soundEffects');
|
||||
} else {
|
||||
// 生产模式:使用 process.resourcesPath
|
||||
return path.join(process.resourcesPath, 'extra/common/soundEffects');
|
||||
|
||||
Reference in New Issue
Block a user