URIError: 无法解码参数 '/<myusername>/<projectname>/%PUBLIC_URL%/manifest.json'

Posted

技术标签:

【中文标题】URIError: 无法解码参数 \'/<myusername>/<projectname>/%PUBLIC_URL%/manifest.json\'【英文标题】:URIError: Failed to decode param '/<myusername>/<projectname>/%PUBLIC_URL%/manifest.json'URIError: 无法解码参数 '/<myusername>/<projectname>/%PUBLIC_URL%/manifest.json' 【发布时间】:2021-03-03 11:19:16 【问题描述】:

我正在尝试恢复我一年半前编写的旧 React 应用程序。

我克隆它并安装了所有依赖项,但是当我执行“npm start”时,它只是加载一个空白页面并引发错误:

“URIError: 无法解码参数'///%PUBLIC_URL%/manifest.json'”

老实说,我不确定从这里去哪里。

这是我的 package.json 的样子:


  "name": "nosmallstreamer",
  "version": "1.0.0",
  "description": "This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).",
  "main": "index.js",
  "scripts": 
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  ,
  "repository": 
    "type": "git",
    "url": "git+https://github.com/chaselancaster/nosmallstreamer-frontend.git"
  ,
  "author": "",
  "license": "ISC",
  "bugs": 
    "url": "https://github.com/chaselancaster/nosmallstreamer-frontend/issues"
  ,
  "homepage": "https://github.com/chaselancaster/nosmallstreamer-frontend#readme",
  "dependencies": 
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "^4.0.0"
  ,
  "browserslist": 
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  

这是我的 index.html 在公用文件夹中的样子:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <!-- <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" /> -->
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <!--
      manifest.json provides metadata used when your web app is installed on a
      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
    -->
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <!--
      Notice the use of %PUBLIC_URL% in the tags above.
      It will be replaced with the URL of the `public` folder during the build.
      Only files inside the `public` folder can be referenced from the HTML.

      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
      work correctly both with client-side routing and a non-root public URL.
      Learn how to configure a non-root public URL by running `npm run build`.
    -->
    <title>React App</title>
  </head>
  <body>
    <noscript>You need to enable javascript to run this app.</noscript>
    <div id="root"></div>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>

这是我的 manifest.json 在公共文件夹中的样子:


  "short_name": "React App",
  "name": "Create React App Sample",
  "icons": [
    
      "src": "favicon.ico",
      "sizes": "64x64 32x32 24x24 16x16",
      "type": "image/x-icon"
    
  ],
  "start_url": ".",
  "display": "standalone",
  "theme_color": "#000000",
  "background_color": "#ffffff"

感谢任何帮助!

【问题讨论】:

看起来这最初是使用 Create React App 创建的。我假设它有一个public 文件夹。它的内容是什么? 包含index.html和manifest.json! 你能编辑你的问题并提供 index.html 吗? 现在完全要添加它! 【参考方案1】:

尝试将 package.json 文件中的 homepage 更改为:"/",而不是使用 GitHub 存储库的 URL。 react-scripts run(这是 npm start 运行的)似乎使用来自 homepage 的域作为服务应用程序的根。

【讨论】:

【参考方案2】:

在您的 index.html 中,尝试更改

<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />

到:

<link rel="manifest" href="/public/manifest.json" />

这可能是在不弹出项目的情况下解决它的唯一方法。

【讨论】:

试过了,但没有成功!由于某种原因,项目的全名没有显示在 URL 栏中。它显示“localhost:3000/chaselancaster/nosmallstreamer-fronten”。但是,该项目的名称是“nosmallstreamer-frontend”。这和它有什么关系吗?

以上是关于URIError: 无法解码参数 '/<myusername>/<projectname>/%PUBLIC_URL%/manifest.json'的主要内容,如果未能解决你的问题,请参考以下文章

URIError:无法解码参数“/%PUBLIC_URL%/favicon.ico”

Webpack URIError:无法解码参数'/%PUBLIC_URL%/favicon.ico'

无法通过@RequestParam Spring @RestController 解码 url 查询参数

解码URLDecode和编码URLEnCode

通过url传参遇到参数为中文无法解码问题

如果视频编解码器参数与“直通”不同,我无法播放转码流