You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova+Nuxt3安卓APK加载资源失败:ERR_CONNECTION_REFUSED

解决Nuxt3 + Cordova安卓APK本地资源加载失败问题

核心原因

Nuxt3默认构建时会生成基于localhost的绝对资源路径,但Cordova安卓应用是通过file://协议加载本地文件,而非HTTP服务,所以导致localhost/_nuxt/资源请求被拒绝。

具体解决方案

1. 调整Nuxt3构建配置

在项目根目录的nuxt.config.ts中修改配置,确保资源路径为相对路径,并直接输出到Cordova的www目录:

export default defineNuxtConfig({
  app: {
    baseURL: './', // 将所有资源路径改为相对路径
  },
  build: {
    outDir: 'www', // 让Nuxt构建产物直接输出到Cordova的www目录,无需手动复制
  },
})

2. 修正Cordova config.xml配置

确保config.xml中的导航、访问权限适配本地文件加载:

<!-- 指向正确的入口文件 -->
<content src="index.html" />

<!-- 允许访问本地文件系统 -->
<allow-navigation href="file:///*" />
<access origin="*" />
<allow-intent href="*" />

<!-- 启用Android本地文件访问权限(Android 10+需要) -->
<preference name="AndroidInsecureFileModeEnabled" value="true" />

3. 正确设置CSP元标签

在Nuxt项目根目录的app.html中添加兼容Cordova的CSP配置(避免手动修改index.html被构建覆盖):

<!DOCTYPE html>
<html {{ HTML_ATTRS }}>
  <head {{ HEAD_ATTRS }}>
    {{ HEAD }}
    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: content:;">
  </head>
  <body {{ BODY_ATTRS }}>
    {{ APP }}
  </body>
</html>

4. 规范构建流程

  1. 先执行Nuxt静态生成命令:
npx nuxt generate
  1. 再执行Cordova安卓打包命令:
cordova build android

验证调试

通过chrome://inspect调试时,查看资源请求路径是否变为file:///android_asset/www/_nuxt/xxx,如果是则配置生效。

内容的提问来源于stack exchange,提问作者Neberith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:22:40