可以通过文件//协议响应工作

Can react work over the file:// protocol?

本文关键字:工作 响应 协议 可以通过 文件      更新时间:2023-09-26

我使用基本的jQuery和lodash的模板开发了几个工具。

我意识到使用Ajax调用的那些库不能在文件系统上工作,并且当我尝试使用Ajax加载模板时给出此错误:

XMLHttpRequest无法加载文件:///Users/Pro/Google%20Drive/dev/tasks/webDevEnvironment/public/html/pipeline-doc/templates/content-one-variable.html.
跨域请求仅支持以下协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource

我真的很喜欢React的理念,对于我正在构建的小工具来说,它可能有点过分了。在我开始重新编码一切之前,我想知道React应用程序是否在后台使用ajax进行模板,或者是否有可能在脚本标签中加载所有内容?

我刚开始使用React,据我所知,在文件://协议上工作不会有问题…但我更想确定一下!

在最基本的情况下不会有问题。但是,这取决于你如何处理它,它可能很快就会出现问题。

一个简单的解决方法是不要在file://协议上这样做。您可以轻松地在节点中创建类似轻量级express服务器的东西,然后允许您在http://协议上操作并避开整个问题。

var express = require('express'),
    app = express();
app.use(express.static('source-files-directory-goes-here'));
app.listen(3000, function () { console.log('Listening on port 3000'); });

将其放入一个名为server.js的文件中,然后您可以使用node server.js运行它,它将从http://localhost:3000目录中的任何文件中搜索文件。你只需要使用npm install express来获取它。

如果你想要一个package.json,如果你要使用React,你会想要的,你可以有这样的东西:

{
    "dependencies": {
        "express": "latest"
    },
    "scripts": {
        "start": "node server.js"
    }
}

npm start一起运行