Vin*_*oft 5 wordpress nginx docker
我正在使用 Docker 来为我的简单 WordPress 网站提供服务。一个 nginx 容器和一个 wordpress 容器。简单设置:
upstream wordpress_english {
server wordpress_en:80;
}
server {
listen 80;
server_name my_domain.com www.my_domain.com;
location / {
proxy_pass http://wordpress_english;
}
}
Run Code Online (Sandbox Code Playgroud)
问题:静态文件(css、js 和图像)未加载。
浏览器控制台的输出显示 404:
http://wordpress_english/wp-content/themes/twentyfifteen/genericons/genericons.css?ver=3.2
Run Code Online (Sandbox Code Playgroud)
很容易发现问题:浏览器在 wordpress_english(nginx 上游名称)查找静态文件,而不是my_domain.com
我该如何解决这个问题?
这不是nginx问题,而是 WordPress 的问题。
解决方案:
在 中wp-config.php,添加以下两行:
define('WP_HOME','http://my_domain.com');
define('WP_SITEURL','http://my_domain.com');
Run Code Online (Sandbox Code Playgroud)
在 WordPress 安装过程中,WordPress 会自动设置
WP_HOME为nginx上游名称。上述解决方案会覆盖默认设置。
看来是你的 nginx 配置文件有问题。
声明您的服务器时,my_domain您location /提供proxy_pass wordpress_english. 我对 nginx 不太了解,但我在你的服务器中没有看到任何路径声明my_domain,并且 root 是否链接到wordpress_english. wordpress_english他在您的服务器中而不是在您的服务器中查找文件似乎很正常。(事实上,我猜他正在你的服务器中查找,但你的服务器告诉你在 WordPress 中查找)。
不确定,因为我不太了解 nginx 和 proxy_pass 函数。