This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Отображение Vue

unsubdreada

Участник портала
20 Сен 2023
16
1
15
Накидал простую форму, сбилдил в client_packages/CEF, через http-server отображается всё корректно, но в игре ничего не отображается (если использовать browser = mp.browsers.new("http://127.0.0.1:8080") - то отображается), скрипт загружается, отладочное "Создание браузера" в консоли имеется.
В CEF remote debugging адрес отображается верно: packages://CEF/index.html, но если зайти в него DOM пустой (теги head и body пусты)

Структура client_packages:
Markdown (GitHub flavored):
```
└── 📁client_packages
    └── .listcache
    └── 📁CEF
        └── 📁assets
            └── bg-l-CqQvVu6Y.png
            └── index-BuzEuQZQ.css
            └── index-fXmsVpr3.js
        └── client.js
        └── favicon.ico
        └── index.html
    └── index.js
```

Server\client_packages\CEF\client.js:
JavaScript:
let browser = null;

mp.console.clear();

mp.events.add("showBrowser", () => {
  if (browser == null) {
    mp.console.logInfo("Создание браузера");
    try {
      // browser = mp.browsers.new("http://127.0.0.1:8080"); // Работает
      browser = mp.browsers.new("packages://CEF/index.html"); // Ничего
      mp.gui.cursor.show(true, true);
    } catch (error) {
      mp.console.logError(`Ошибка при создании браузера: ${error.message}`);
    }
  }
});

Server\client_packages\CEF\index.html:
HTML:
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" href="./favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite App</title>
    <script type="module" crossorigin src="./assets/index-fXmsVpr3.js"></script>
    <link rel="stylesheet" crossorigin href="./assets/index-BuzEuQZQ.css">
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

Пробовал вручную менять в index.html пути к скрипту и css на "packages://assets..." не помогает

Собираю через Vite
web\vite.config.js:
JavaScript:
import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  base: './',
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  build: {
    outDir: '../Server/client_packages/CEF',
    emptyOutDir: true
  }
})
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
1,683
1,286
5
Попробуйте изменить путь к скрипту и CSS в index.html на абсолютный путь, начинающийся с /client_packages/CEF/assets/..., чтобы указать правильный путь к ресурсам. Например:

HTML:
<script type="module" crossorigin src="/client_packages/CEF/assets/index-fXmsVpr3.js"></script>
<link rel="stylesheet" crossorigin href="/client_packages/CEF/assets/index-BuzEuQZQ.css">

Таким образом, вы укажете полный путь к вашим ресурсам в игре. После этого попробуйте перезапустить игру и проверить, отобразится ли содержимое вашей формы.
 
Реакции: unsubdreada

Inoi

/dev/null
VIP
15 Окт 2020
3,269
2,052
208
35
я не уверен но

ну, http://

мне кажется просто package:// не подгружает твои файлики с абсолютными путями после вите
технически бот даже прав в какой-то степени, он просто с другого края зашёл
 

X-Clusiv

Модератор
Команда форума
high coder
4 Окт 2020
682
348
161
30
у тебя packages:// а должно быть package://