weixin_47956827 2022-08-30 11:10 采纳率: 20%
浏览 193

electron+vue加载不到静态资源问题

electron+vue运行之后相对路径直接加载到根路径下去了,找不到vue编译后的静态资源
项目源码:vite.config.js
    base: VITE_APP_ENV === 'production' ? './' : './',
    plugins: createVitePlugins(env, command === 'build'),
    resolve: {
      // https://cn.vitejs.dev/config/#resolve-alias
      alias: {
        // 设置路径
        '~': path.resolve(__dirname, './'),
        // 设置别名
        '@': path.resolve(__dirname, './src')
      },
      // https://cn.vitejs.dev/config/#resolve-extensions
      extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
    },
electron项目 main.js
const { app, BrowserWindow, globalShortcut } = require('electron')
const path = require('path')
const createWindow = (accelerator, callback) => {
  const win = new BrowserWindow({
    width: 1920,
    height: 1080,
    minWidth: 384,
    minHeight: 216,
    maxWidth: 1920,
    maxHeight: 1080,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  })
  win.loadURL(`file://${__dirname}/static/index.html`)
  win.webContents.openDevTools()

}
app.whenReady().then(() => {
  createWindow()
})
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})
preload.js
window.addEventListener('DOMContentLoaded', () => {
  const replaceText = (selector, text) => {
    const element = document.getElementById(selector)
    if (element) element.innerText = text
  }

  for (const dependency of ['chrome', 'node', 'electron']) {
    replaceText(`${dependency}-version`, process.versions[dependency])
  }
})
package.json
{
  "name": "electron-app",
  "version": "1.0.0",
  "description": "NanHu",
  "main": "main.js",
  "author": "archie",
  "license": "MIT",
  "dependencies": {
    "core-js": "^2.4.1",
    "electron-packager": "^12.1.0",
    "electron-updater": "^4.0.0"
  },
  "devDependencies": {
    "electron": "^20.0.1",
    "electron-packager": "^16.0.0"
  },
  "scripts": {
    "start": "electron .",
    "packager": "electron-packager ./ App --platform=win32 --arch=x64 --electron-version=3.0.0 --overwrite"
  },
  "build": {
    "win": {
      "requestedExecutionLevel": "highestAvailable",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        }
      ]
    },
    "appId": "NanHu",
    "artifactName": "NanHu-${version}-${arch}.${ext}",
    "nsis": {
      "artifactName": "NanHu-${version}-${arch}.${ext}"
    },
    "extraResources": [
      {
        "from": "./static/",
        "to": "/",
        "filter": [
          "**/*"
        ]
      }
    ]
  }
}
目录

img


img

运行结果及报错内容

img

路径已经变成根路径了

img

我的解答思路和尝试过的方法

img

如果我把./修改成/的话,连js也加载不到就一直显示下图的加载页面

img

求帮忙看看是什么问题
  • 写回答

2条回答 默认 最新

  • 三巧 2023-02-09 17:47
    关注

    你可能需要配置 vitejs#publicdir

    评论

报告相同问题?

问题事件

  • 创建了问题 8月30日

悬赏问题

  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析
  • ¥200 sqlite3数据库设置用户名和密码