我正在为一个项目开发Lumen / React应用程序。显然Lumen提供了API,React提供了用户界面。我现在想通过Lumen为我的React应用程序提供服务,以便它可以接管所有用户界面的工作。
我希望尽可能保留应用程序的客户端部分,以便将来在需要时可以轻松地从Lumen切换到Koa或任何其他后端。我的应用程序结构如下所示:
如您所见,React应用程序是仓库的子文件夹。这是我在以前的Koa项目中所做的事情,但是,由于Nodejs Web服务的特性,它使服务这些文件变得更加容易。
到目前为止,根据我的测试,我认为处理文件的最佳方法是从客户端文件夹/ build或/ public读取index.html
的内容,具体取决于是否启用了生产。然后,我将需要再次将对Web服务器设置的公用文件夹之外的资产的请求重定向到客户端文件夹中的/ build或/ src,具体取决于它是否在生产中。
我的问题是:
A)是否可以通过安全可靠的方式实现?
B)这是通过Lumen服务React应用程序的最佳方法吗?
答案 0 :(得分:0)
可能不是最好的解决方案,但是我只是编写了自己的脚本,以便在运行构建脚本后将构建的版本部署到Lumen文件中。
开发可以通过React proxy选项完成。
const copydir = require('copy-dir');
const fs = require('fs');
copydir.sync('./build', '../public');
fs.readFile('./build/index.html', 'utf8', function (err, data) {
if (err) throw err;
fs.writeFile ('../resources/views/index.php', data, function(err) {
if (err) throw err;
});
});