作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每个人。
我刚刚部署了 Strapi 和 React 项目。
但是我托管了个人,所以这似乎很奇怪。
如何在一台主机上进行部署。我找不到任何有关此的指南。
像这样:
表带:
https://nuclear-leagcy.herokuapp.com/admin
https://nuclear-leagcy.herokuapp.com/graphql
react
https://nuclear-leagcy.herokuapp.com
我想我必须用 express 定义 server.js。但我现在对此没有任何想法。
补充。
我想在生产中使用 graphql,但想在生产中禁用操场界面,以便其他人不能这样做。
我能怎么做?
最佳答案
使用 3.0.0.beta.19.5 在同一台服务器上部署 Strapi + React 你需要做以下事情。
根目录 = 表示 Strapi 项目的根文件夹。
您需要创建一个新的中间件,rootDir/middlewares/serve-react,以及这两个文件。
{
"serve-react": {
"enabled": true
}
}
'use strict';
/**
* Module dependencies
*/
// Node.js core.
const fs = require('fs');
const path = require('path');
const koaStatic = require('koa-static');
/**
* Serve react hook
*/
module.exports = strapi => {
return {
/**
* Initialize the hook
*/
async initialize() {
const {maxAge, path: publicPath} = strapi.config.middleware.settings.public;
const staticDir = path.resolve(strapi.dir, publicPath || strapi.config.paths.static);
strapi.router.get(
'/*',
async (ctx, next) => {
const parse = path.parse(ctx.url);
ctx.url = path.join(parse.dir, parse.base);
await next();
},
koaStatic(staticDir, {
maxage: maxAge,
defer: false, // do not allow other middleware to serve content before this one
})
);
// if no resource is matched by koa-static, just default to serve index file
// useful for SPA routes
strapi.router.get('*', ctx => {
ctx.type = 'html';
ctx.body = fs.createReadStream(path.join(staticDir + '/index.html'));
});
},
};
};
{
"timeout": 100,
"load": {
"before": [
"responseTime",
"logger",
"cors",
"responses",
"gzip"
],
"order": [
"Define the middlewares' load order by putting their name in this array is the right order"
],
"after": [
"parser",
"router",
"serve-react"
]
}
}
关于reactjs - 如何在一台主机上部署 Strapi 和 React?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61143308/
我是一名优秀的程序员,十分优秀!