Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 生成后在index.html中获取公共URL_Javascript_Reactjs_Npm_Deployment_Build - Fatal编程技术网

Javascript 生成后在index.html中获取公共URL

Javascript 生成后在index.html中获取公共URL,javascript,reactjs,npm,deployment,build,Javascript,Reactjs,Npm,Deployment,Build,我使用命令npx create react app my app创建了一个reactjs app,我使用warn build 包json: "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" } 构建app index.html后,如下图

我使用命令
npx create react app my app
创建了一个reactjs app,我使用
warn build

包json:

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  }
构建app index.html后,如下图所示(它具有所有静态文件的绝对路径)


我希望这些源代码如下所示(需要提供一个公共URL)



我尝试将
PUBLIC\u URL
homepage
添加到package.json中,但没有成功。

只需在链接的href中使用
%PUBLIC\u URL%
,它将仅在公共文件夹中存在这些文件时才会获取这些文件

将文件放在
public
文件夹中,假设文件是您要访问的图标,其名称为
icon.ico

您不需要为文件设置绝对url,只需在index.html中使用
%PUBLIC\u url%


注意:您不需要将公共URL添加到
package.json
。它已分配到公用文件夹。

只需在链接的href中使用
%public\u URL%
,它将仅在公用文件夹中存在这些文件时获取这些文件

将文件放在
public
文件夹中,假设文件是您要访问的图标,其名称为
icon.ico

您不需要为文件设置绝对url,只需在index.html中使用
%PUBLIC\u url%

注意:您不需要将公共URL添加到
package.json
。它已分配到公用文件夹。

找到了解决方案

我使用
dotenv
设置环境变量。下面给出了实现该解决方案的步骤

1) 安装
dotenv
软件包

npm i dotenv
2) 尽早在应用程序中,要求并配置dotenv

require('dotenv').config()
3) 在项目的根目录中创建一个
.env
文件。以
NAME=VALUE
的形式在新行中添加特定于环境的变量

PUBLIC_URL=http://192.168.8.100:3000
找到了解决办法

我使用
dotenv
设置环境变量。下面给出了实现该解决方案的步骤

1) 安装
dotenv
软件包

npm i dotenv
2) 尽早在应用程序中,要求并配置dotenv

require('dotenv').config()
3) 在项目的根目录中创建一个
.env
文件。以
NAME=VALUE
的形式在新行中添加特定于环境的变量

PUBLIC_URL=http://192.168.8.100:3000

已经存在,但是一旦我构建了
%PUBLIC\u URL%
的值,它就不会添加到静态文件夹中。我想你可以创建一个新的
.env
文件并分配一个变量
APP\u LINK=http://localhost:3000
。也尝试将
.env
文件添加到
package.json
的位置。分配了一个变量PUBLIC_URL=。它不在公共目录中的“静态”目录下工作?我这样问是因为
public
目录被分配给了`localhost:3000',如果您试图访问public文件夹中的子目录,那么只有这样才能访问,否则您无法访问应用程序中的其他目录。您可以最后一次尝试->
href=“%REACT\u app\u TEST\u URL1%/icon.ico”
。当您以
REACT\u app\u TEST\u URL1的身份运行应用程序时,您可以传递env变量=http://localhost:3000 npm启动
已经存在,但是一旦我建立了
%PUBLIC\u URL%
的值,它就不会添加到静态文件夹中。我想你可以创建一个新的
.env
文件,并分配一个变量
APP\u LINK=http://localhost:3000
。也尝试将
.env
文件添加到
package.json
的位置。分配了一个变量PUBLIC_URL=。它不在公共目录中的“静态”目录下工作?我这样问是因为
public
目录被分配给了`localhost:3000',如果您试图访问public文件夹中的子目录,那么只有这样才能访问,否则您无法访问应用程序中的其他目录。您可以最后一次尝试->
href=“%REACT\u app\u TEST\u URL1%/icon.ico”
。当您以
REACT\u app\u TEST\u URL1的身份运行应用程序时,您可以传递env变量=http://localhost:3000 npm启动