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'