10

我正在使用Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0-rc1-final它在内部使用Create-react-appAspnetCore.ReactDevelopmentServer

我的开发者 环境使用 IIS 来托管多个 api,例如 api1 作为http://localhost/api1和 api2 作为http://localhost/api2

问题是如果我将我的 React 应用程序从Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0-rc1-final模板托管到http://localhost/myApp - 它希望文件始终使用 PublicPath "/" 和因此不起作用。

我知道Create-react-app的 Prod 设置使用来自 PUBLIC_URL 的PublicPath来自package.json 的Homepage 。

是否可以修改 create-react-app 设置以在 Dev 中使用自定义公共路径。环境?

4

5 回答 5

6

您可以PUBLIC_URL.env.local本地计算机上进行设置。

在构建发布时请注意不要设置此文件/变量。您可以阅读有关.envcra 文档的更多信息。

于 2019-02-07T16:02:53.810 回答
5

在 github 上进行更多谷歌搜索和搜索旧问题后,我意识到此功能应在 react-scripts 2.0 中发布,其中应包括 https://github.com/facebook/create-react-app/pull/1887。这将允许子路径包含在 url 中,文件在 create-react-app 中提供

于 2018-02-08T03:42:26.743 回答
0

在我注入项目后,我看到了这些行:

// We use `PUBLIC_URL` environment variable or "homepage" field to infer
// "public path" at which the app is served.

所以,请更新环境文件中的 PUBLIC_URL

于 2021-01-27T03:03:57.047 回答
0

在你package.json添加一个homepage键。这将强制使用它们定义的前缀构建所有文件。

// package.json
{
   "name": "my-project",
   "homepage": "/my-path",
   // ....
}

输出:

/my-path/assets/my-asset.png
于 2021-11-10T13:00:09.237 回答
-3

在 package.json 中使用“代理”将允许创建反应应用程序与开发环境中的服务器端对话。我正在使用 VSCode 运行应用程序,并且由于代理值 - 我的应用程序正在与我的 IIS 托管服务通信。

看到这个:https ://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#proxying-api-requests-in-development

于 2018-05-09T03:30:46.040 回答