React.JS react-create-app后端同一个端口

时间:2017-01-25 21:37:14

标签: reactjs

我是React.JS的新手,并使用react-create-app来设置项目。

我想知道有没有办法使用相同的主机和端口来响应API请求,(服务器同时服务于前端和后端,就像在Django中一样)。

该文件提到了这一点,但没有详细说明。

通过相同的主机和端口我的意思是我只需要一个终端并运行npm start。

1 个答案:

答案 0 :(得分:2)

如果仅用于开发,您只需添加

即可
"proxy": "http://localhost:8000/"

package.json

这会将您的API查询从React代理到您在另一个端口上工作的其他应用程序(有8000个)。

完成后,您需要构建生产代码(npm build命令),其结果是index.html,它会加载构建的js和css包。

从Django你只需要将你的IndexView指向这个文件(你可以将它作为TemplateView来实现,但也许更简单只是像那样呈现:

class IndexView(View):
    def get(self, request):
        index = open(str(settings.BASE_DIR.path('build/index.html')), 'r')
        return HttpResponse(content=index.read())

然后只使用来自React的API - 从这一点开始,两者都可以在公共端口上使用。

回到开发模式 - 您还可以配置Webpack以在每次保存更改时构建应用程序并仅从Django(或Rails,或Node或任何后端)运行它们,但我更喜欢使用代理,在完成开发之前,将这两个应用程序保留在其原生上下文中。这种解决方案的一个缺点是您需要始终同时运行这两个应用程序。

我在那里发现了一些有用的信息和灵魂:https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/