Wordpress& Nginx与Docker:未加载静态文件

时间:2016-10-25 09:49:38

标签: 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;
    }
}

问题:未加载静态文件(css,js和图像)。

浏览器控制台的输出显示404:

http://wordpress_english/wp-content/themes/twentyfifteen/genericons/genericons.css?ver=3.2

很容易发现问题:浏览器在wordpress_english(nginx上游名称)中查找静态文件,而不是my_domain.com

如何解决此问题?

2 个答案:

答案 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函数。