电子中的http协议不能要求渲染器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电子中的http协议不能要求渲染器相关的知识,希望对你有一定的参考价值。

任何人都可以解释为什么这段代码不起作用?我试图在文件协议中要求渲染器(没有快速静态服务器),它很好,但当我用http协议这样做时,我得到了Uncaught Error: Cannot find module './renderer'

有没有办法在http中要求自定义模块?

谢谢 ...


结构体

- project
    + node_modules
    - app.js
    - index.html
    - package.json
    - renderer.js

app.js

const { app, BrowserWindow } = require('electron');
const express = require('express');
const path = require('path');
const url = require('url');

const server = express();

server.use(express.static(__dirname));

app.on('ready', () => server.listen(3000, createWindow));

function createWindow() {
  let win = new BrowserWindow({ width: 800, height: 600 });
  win.loadURL(url.format({
    protocol: 'http',
    hostname: 'localhost',
    port: 3000
  }));
  win.webContents.openDevTools();
  win.on('closed', function () {
    win = null;
    app.quit();
  });
}

的index.html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Test</title>
</head>

<body>
  <div id="root"></div>
  <script>
    require('./renderer');
  </script>
</body>

</html>

renderer.js

var root = document.getElementById('root');
root.innerHTML = 'Hello, World !';
  • 电子版:1.7.10
  • 操作系统:Windows 10
答案

就像你对任何其他模块一样需要它并指定路径,在你的情况下:

require('./renderer')

以上是关于电子中的http协议不能要求渲染器的主要内容,如果未能解决你的问题,请参考以下文章

无法通过电子中的渲染器进程发送消息

从片段着色器中的地形高程数据计算法线

GLSL:无法从 FBO 读取纹理并使用片段着色器渲染到另一个 FBO

为啥片段着色器比渲染纹理更快?

如何从电子中的渲染器进程调用 preload.js 中定义的函数

在GLSL ES中的片段着色器上旋转纹理