create-react-app with node express 获得 %PUBLIC_URL%
create-react-app with node express getting %PUBLIC_URL%
我正在尝试使用快速服务器创建反应应用程序。在我点击请求时设置服务器后,我得到
GET http://localhost:3333/%PUBLIC_URL%/favicon.ico 400 (Bad Request)
错误预览它给我
URIError: Failed to decode param '/%PUBLIC_URL%/favicon.ico'
at decodeURIComponent (<anonymous>)
at decode_param (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/layer.js:172:12)
at Layer.match (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/layer.js:123:27)
at matchLayer (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:574:18)
at next (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:220:15)
at jsonParser (/home/owaishanif/code/flashcard-app/node_modules/body-parser/lib/types/json.js:103:7)
at Layer.handle [as handle_request] (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:317:13)
at /home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:335:12)
这是服务器代码
var express = require('express');
var bodyParser = require('body-parser');
var path = require ('path');
var data = {};
express()
.use(express.static(path.resolve(__dirname, '..', 'public')))
.use(bodyParser.json())
.get('/api/data', (req, res) => res.json(data))
.post('/api/data', (req, res) => res.json(data = req.body))
.get('*', (req, res) => res.sendFile( path.resolve( __dirname, '..', 'public/index.html')))
.listen(3333, function(){
console.log('server running at 3333');
});
我想使用 create react app with server。网上有文章,但是已经过时了。欢迎提供帮助提示和技巧。
我已经使用 create-react-app
build
解决了这个问题,它创建了一个构建文件夹。 %public_url%
字符串在幕后被一些 yarn 脚本替换。所以我们不能直接为那个文件夹提供服务。相反,我们必须使用 build
生成。
使用 yarn build
或 npm run build
。这将生成一个包含 asset
、manifest
和其他文件的构建文件夹。
之后,使用该构建文件夹静态提供您的文件以供生产使用。
我正在尝试使用快速服务器创建反应应用程序。在我点击请求时设置服务器后,我得到
GET http://localhost:3333/%PUBLIC_URL%/favicon.ico 400 (Bad Request)
错误预览它给我
URIError: Failed to decode param '/%PUBLIC_URL%/favicon.ico'
at decodeURIComponent (<anonymous>)
at decode_param (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/layer.js:172:12)
at Layer.match (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/layer.js:123:27)
at matchLayer (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:574:18)
at next (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:220:15)
at jsonParser (/home/owaishanif/code/flashcard-app/node_modules/body-parser/lib/types/json.js:103:7)
at Layer.handle [as handle_request] (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:317:13)
at /home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/owaishanif/code/flashcard-app/node_modules/express/lib/router/index.js:335:12)
这是服务器代码
var express = require('express');
var bodyParser = require('body-parser');
var path = require ('path');
var data = {};
express()
.use(express.static(path.resolve(__dirname, '..', 'public')))
.use(bodyParser.json())
.get('/api/data', (req, res) => res.json(data))
.post('/api/data', (req, res) => res.json(data = req.body))
.get('*', (req, res) => res.sendFile( path.resolve( __dirname, '..', 'public/index.html')))
.listen(3333, function(){
console.log('server running at 3333');
});
我想使用 create react app with server。网上有文章,但是已经过时了。欢迎提供帮助提示和技巧。
我已经使用 create-react-app
build
解决了这个问题,它创建了一个构建文件夹。 %public_url%
字符串在幕后被一些 yarn 脚本替换。所以我们不能直接为那个文件夹提供服务。相反,我们必须使用 build
生成。
使用 yarn build
或 npm run build
。这将生成一个包含 asset
、manifest
和其他文件的构建文件夹。
之后,使用该构建文件夹静态提供您的文件以供生产使用。