Electron + NextJS: ссылки имеют неверные HREF после строительстваJavascript

Форум по Javascript
Ответить
Anonymous
 Electron + NextJS: ссылки имеют неверные HREF после строительства

Сообщение Anonymous »

My Electron + Next.js Приложение имеет сгенерированную клиентскую боковую панель по ссылке: < /p>

Код: Выделить всё

[*]wallets
< /code>
, который работает так же, как и ожидалось, когда работает локально. и .html 
в конце, но оставайтесь в исходном исходном коде. > Что сгенерировано SSR.
в исходном источнике:

Код: Выделить всё

/wallets

ожидается после сборки и пакета:

Код: Выделить всё

file:///Users/user/Desktop/project/dist/mac-arm64/MintBox.app/Contents/Resources/app.asar/out/wallets.html

Actual:

Код: Выделить всё

[url=/wallets] ... [/url]
, который преобразуется в файл: /////10 кода> после нажатия
Структура проекта:

Код: Выделить всё

.
├── app
│   ├── layout.tsx
│   ├── page.tsx
│   ├── providers.tsx
│   └── wallets
│       └── page.tsx
├── components
│   ├── list-item.tsx
│   └── sidebar
│       └── app_sidebar.tsx
├── electron
│   ├── main.js
│   └── preload.js
├── next-env.d.ts
├── next.config.js
├── package-lock.json
├── package.json
├── postcss.config.js
├── styles
│   └── global.css
├── tailwind.config.js
├── tsconfig.json
└── yarn.lock
electron/main.js функция:

Код: Выделить всё

function createWindow() {

mainWindow = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: false,
contextIsolation: true,
},
icon: path.join(__dirname, 'assets', 'icon.png')
});
mainWindow.setBackgroundColor("black");

// this page will load correctly, but in case of the Link with href='/' it will result in the same error as described
const appUrl = isDev
? 'http://localhost:3000'
: `file://${path.join(app.getAppPath(), 'out', 'index.html')}`;

mainWindow.loadURL(appUrl);

mainWindow.on('closed', () => {
mainWindow = null;
});
}
< /code>
У Package.json есть следующий сценарий пакета: < /p>
"main": "electron/main.js",
"scripts": {
"dev": "concurrently \"next dev\" \"cross-env NODE_ENV=development electron .\"",
"build": "next build",
"pack-app": "npm run build && electron-builder --dir",
"start": "electron ."
},

< /code>
next.config.js
:

Код: Выделить всё

const isProd = process.env.NODE_ENV === 'production';
module.exports = {
reactStrictMode: true,
assetPrefix: isProd ? './' : '',
output: "export",
};
< /code>
[b]I've tried to:[/b]
[list]
switch webSecurity
in main.js
[*]

Код: Выделить всё

assetPrefix
in next.config.js
[*] Сделайте исходные пути, чтобы закончить с/, например,/кошельки/
< li> Использовать электрон-строитель с и без-dir
[*] Создать пользовательский протокол файлов
[/list]
В результате либо не разрешено загружать локальный ресурс , либо файл, показанный как не найденный в запросах приложения.

Подробнее здесь: https://stackoverflow.com/questions/793 ... r-building
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»