【问题标题】:LiveReload over HTTPS on node JS will not work在节点 JS 上通过 HTTPS 进行 LiveReload 将不起作用
【发布时间】:2021-04-08 22:07:08
【问题描述】:

在我不得不更改为 https 之前,它一直运行良好。 这是我的 livereload 配置:

const express = require("express");
const app = express();
const path = require('path');
const livereload = require('livereload')
const connectLiveReload = require('connect-livereload')


const liveReloadServer = livereload.createServer();
liveReloadServer.watch(publicDirectory)
liveReloadServer.server.once("connection",()=>{
    setTimeout(() => {
        liveReloadServer.refresh("/");
    }, 200);
})

app.use(connectLiveReload());

它开始显示的错误是:

当然,它不会接受更改和重新加载。

【问题讨论】:

    标签: node.js https livereload


    【解决方案1】:

    来自包livereload的npm页面here

    服务器 API

    createServer() 方法接受两个参数。

    首先是一些配置选项,作为 JavaScript 传递 对象:

    • https 是要传递给的选项的可选对象 https.createServer(如果未提供,则使用 http.createServer 而是)

    你可以查看关于https.createServerhere的NodeJS文档

    据此,我认为 liveReloadServer 的配置将是这样的,你使用你的 SSL 证书和密钥:

    const liveReloadServer = livereload.createServer({
        https : {
            key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
            cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
        }
    });
    

    【讨论】:

    • 可以发誓我试过这个。有趣的是它适用于 chrome 但不适用于 Brave 浏览器,我收到“net::ERR_CERT_AUTHORITY_INVALID”错误。
    • Nvm,重启 Brave 浏览器,现在可以正常使用了
    猜你喜欢
    • 2015-07-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    相关资源
    最近更新 更多