如果文件没有扩展名,电子应用程序的 Nodejs http 服务器未设置正确的本地文件内容类型标头

编程入门 行业动态 更新时间:2024-10-05 11:24:50

如果文件没有<a href=https://www.elefans.com/category/jswz/34/1757163.html style=扩展名,电子应用程序的 Nodejs http 服务器未设置正确的本地文件内容类型标头"/>

如果文件没有扩展名,电子应用程序的 Nodejs http 服务器未设置正确的本地文件内容类型标头

我使用 electron 和 nodejs 创建了一个桌面应用程序。在这里,我正在下载一些 html、css 和 js 以及其他资产文件,如图像、视频以在本地呈现网页。正在使用 window.fetch 下载文件并保存在本地。下载并保存的 HTML 文件没有文件扩展名。需要时会创建一个 nodejs http 服务器来提供文件。如果文件有扩展名,则来自 nodejs 服务器的响应包含正确的内容类型标头,但当没有扩展名时,响应包含 application/octet-stream 作为内容类型。因此,当从 nodejs 服务器请求本地保存的 HTML 文件时,不是呈现/显示 HTML 文件,而是弹出窗口来保存文件。 尝试使用 file-type 来检测文件类型并设置内容类型作为响应,但它不适用于 HTML 文件。 如果从电子应用程序切换到 chromeos 应用程序,那么它工作正常。

尝试使用 file-type 检测文件类型并设置内容类型作为响应,但它不适用于 HTML 文件。

下面是下载文件的代码。 url 是 HTML 文件和资源的 url,如 css、js、图像等。

     download: {
        value: function(url, destination, settings = {}) {
            const fse = global.nodeRequire('fs-extra');
            const nodePath = global.nodeRequire('path');

            return this.fetch(url, settings).then(response => {

                if (!response.ok) {
                    return Promise.reject(new Error(response.code));
                }

                return fse.ensureDir(nodePath.dirname(destination))
                    .then(() => nodeWriteStream(destination, response));
            });
        }
    }   
回答如下:

更多推荐

如果文件没有扩展名,电子应用程序的 Nodejs http 服务器未设置正确的本地文件内容类型标头

本文发布于:2024-05-30 10:36:14,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:扩展名   应用程序   正确   类型   本地文件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!