我使用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;
}
}
问题:未加载静态文件(css,js和图像)。
浏览器控制台的输出显示404:
http://wordpress_english/wp-content/themes/twentyfifteen/genericons/genericons.css?ver=3.2
很容易发现问题:浏览器在wordpress_english(nginx上游名称)中查找静态文件,而不是my_domain.com
如何解决此问题?
答案 0 :(得分:4)
这不是一个nginx问题,而是一个WordPress问题。
<强>解决方案强>:
在wp-config.php
中,添加以下两行:
define('WP_HOME','http://my_domain.com');
define('WP_SITEURL','http://my_domain.com');
在WordPress安装过程中,WordPress会自动将WP_HOME设置为nginx上游名称。上述解决方案将覆盖默认设置。
答案 1 :(得分:0)
似乎是你的nginx配置文件中的一个问题。
在声明您的服务器my_domain
时,您location /
提供了proxy_pass wordpress_english
。我对nginx了解不多,但我在服务器my_domain
中看不到任何路径声明,并且root链接到wordpress_english
。他正在wordpress_english
而不是你的服务器中寻找文件似乎很正常。 (事实上,我猜他正在寻找你的服务器,但你的服务器告诉你看看wordpress)。
不确定因为我不太了解nginx和proxy_pass函数。