Docker REST API无法访问WordPress 4.8

所以我最近使用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: 

它正在运行。 这部分是好的,但是当我去http://siteurl/wp-json我得到了404。网站工作正常,但REST API不可访问。 我有另一个网站在WAMP上运行,当我到达这个地址,它popup:

 { "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" ], ... 

这两个网站正在运行4.8。 在Docker上运行WordPress时,如何访问REST API? 我通常使用Docker进行本地开发,不要回想起这是一个问题。

(作为一个侧面说明,我创build了Bitnami发布的WordPress容器,并没有问题得到正确的响应。所以这是一个问题…官方WordPress的形象?也许图像的基础栈??我可以使用但是我真的真的很想知道问题是什么,因为我看到类似的问题出现在我的同伴手中)

事实certificate,这与你的网站的永久链接设置有关。 /wp-json/wp/v2终结点在您设置您的网站设置为使用自定义永久链接设置时可用。 如果我使用/%post%/ permalink结构它的作品。 有一个使用其他永久链接结构的网站的替代路线:

在没有漂亮永久链接的网站上,该路线将作为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似乎总能正常工作,使其成为更可靠的选项。