Strapi:警告,请求API时发生错误。

16

我在Ubuntu服务器上尝试安装Strapi已经挣扎了好几个小时。

Ubuntu版本:20.04
nodejs版本:v14.19.0
npm版本:6.14.16
strapi版本:4

npx create-strapi-app@latest my-project --quickinstall

所有的安装过程都很顺利,但是当我访问 http://mydomain:1337/admin 以创建第一个用户时,我收到了以下警告信息:
“请求 API 时出错。”
我知道这个问题已经遇到过多次,但是至今没有任何建议的解决方案对我有帮助。我还在 Chrome 控制台中发现了这个错误,但我不确定它是否与我的问题有关:
“main.815f1087.js:2 拒绝连接到'http://localhost:1337/admin/project-type',因为它违反了以下内容安全策略指令:'connect-src'self' https:'。”
有什么想法吗?
10个回答

31
你需要构建该应用。 阅读此 Github 问题。 运行:npm run buildyarn buildstrapi build,具体取决于你使用的工具。

2
这对我有用。不过是在Windows上运行的。 - Toan Lam

5

我在升级到最新版本的Strapi和所有依赖项后遇到了这个错误,帮助我的方法是重新构建Strapi管理界面:

yarn build

或者

npm run build

然后开始开发

yarn develop

或者

npm run develop

1

首先使用 npm run build 构建您的应用程序,然后运行 npm start


1
我所做的是在server.js中将主机地址从0.0.0.0更改为127.0.0.1,然后运行npm run build,这解决了我的问题。我知道听起来很奇怪,但它确实有效。
谢谢。

1

如果您正在使用docker运行strapi CMS,并使用docker composer进行构建,则在将容器端口绑定到系统端口时,请保留默认端口1337。

请这样做:-1337:1337

不要这样做:-8000:13337


0
首先,需要构建管理面板,然后启动应用程序
要构建管理面板,
npm run build
# or
yarn build

要使用自动重新加载功能启动应用程序,请执行以下操作:

npm run develop
# or
yarn develop

0
当您更改Strapi应用程序的端口时,必须运行npm run buildyarn buildstrapi build。因为Strapi管理模板使用默认端口1337,如果要在另一个端口上使用,则必须重新构建项目。

0

我也遇到了同样的问题,简单地重启服务器就解决了。


0
在服务器上运行strapi(并且在反向代理后面)- 您需要设置url:
# path: config/server.js


module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  url: 'https://my.example.com',
});

重建管理面板:`npm run build` 启动开发服务器:`npm run develop`
还有一个有用的方法 - 运行生产构建:NODE_ENV=production npm run build

0
首先要做的是在"./config/server.js"的server.js文件中添加URL。还要添加proxy: true,例如:
module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  app: {
    keys: env.array('APP_KEYS'),
  },
  webhooks: {
    populateRelations: env.bool('WEBHOOKS_POPULATE_RELATIONS', false),
  },
  proxy: true,
  url: "https://yoursite.com",
});

现在在"./config/admin.js"中修改admin.js文件 例如:
module.exports = ({ env }) => ({
  auth: {
    secret: env('ADMIN_JWT_SECRET'),
  },
  apiToken: {
    salt: env('API_TOKEN_SALT'),
  },
  transfer: {
    token: {
      salt: env('TRANSFER_TOKEN_SALT'),
    },
  },
  port: 1337,
  url: "https://yoursite.com/admin"
});

注意:必须使用https,否则控制台会显示类似以下错误信息:
Refused to connect to 'http://yourwebsite/admin/project-type' because it violates the following Content Security Policy directive: "connect-src 'self' https:".

拒绝连接到'http://yourwebsite/admin/init',因为它违反了以下内容安全策略指令:"connect-src 'self' https:"。
如果您没有https,您可能需要更改中间件,请参阅strapi文档中安全部分下面的示例: https://docs.strapi.io/dev-docs/configurations/middlewares#security 非常重要:最后,您必须构建strapi应用程序,否则上述配置更改将不会生效。请确保执行此操作:
NODE_ENV=production npm run build
or
NODE_ENV=production yarn run build

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接