Docker REST API上的WordPress 4.8无法访问

Bra*_*Tom 7 wordpress docker

所以我最近使用Docker安装了WordPress,这是一个来自Docker docs(https://docs.docker.com/compose/wordpress/)的简单填空组合文件.

version: '3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 
      MYSQL_DATABASE: 
      MYSQL_USER: 
      MYSQL_PASSWORD: 

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: 
      WORDPRESS_DB_PASSWORD: 
volumes:
    db_data:
Run Code Online (Sandbox Code Playgroud)

它正在运行.那部分很好,但是当我前往http://siteurl/wp-json我得到404.网站工作正常,但REST API无法访问.我在WAMP上运行了另一个站点,当我到达该地址时,它弹出:

{
  "name": "localhost:8090",
  "description": "Just another WordPress site",
  "url": "http://localhost:8090/wordpress",
  "home": "http://localhost:8090/wordpress",
  "gmt_offset": "0",
  "timezone_string": "",
  "namespaces": [
    "oembed/1.0",
    "wp/v2"
  ],
  ...
Run Code Online (Sandbox Code Playgroud)

两个站点都运行4.8.在Docker上运行WordPress时如何访问REST API?我通常使用Docker在本地开发,并且不记得这是一个问题.

(作为旁注,我发布了Bitnami发布的一个WordPress容器,并且没有问题得到正确的响应.所以这是...官方WordPress图像的问题?可能是图像的底层堆栈??我可以使用它,但我真的,真的,非常想知道问题是什么,因为我已经看到类似的问题出现在我的同伴们身上了)

Bra*_*Tom 21

事实证明,这与您网站的永久链接设置有关.在/wp-json/wp/v2当你设置你的站点设置为使用自定义固定链接设置终点是可用的.如果我使用/%post%/永久链接结构,它的工作原理.对于使用其他永久链接结构的站点,有一条备用路由:

在没有相当固定链接的站点上,路由将作为rest_route参数添加到URL中.对于上面的示例,完整的URL将是http://example.com/?rest_route=/wp/v2/posts/123

资料来源:https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/

事实上?rest_route=/wp/v2/posts似乎总是有效,使其成为更可靠的选择.


小智 8

我在 Docker 上运行并遇到了同样的问题,解决方案是:在 AdminPanal => 设置 -> 永久链接 -> 从“默认”更改为“帖子名称”