Nginx:更改url后无法加载javascript和css

时间:2016-06-29 04:35:33

标签: wordpress nginx

我想将我的博客(位于不同的服务器中)添加到我的主网站的子目录/博客中。

通过nginx的代理进展顺利

location /blog/ {
  proxy_pass http://107.170.8.156/;
}

我还将这些行添加到config.php

define( 'WP_SITEURL', '/blog' );
define( 'WP_HOME', '/blog' );

$_SERVER['REQUEST_URI'] = str_replace("/wp-admin/", "/blog/wp-admin/",  $_SERVER['REQUEST_URI']);

它工作正常,但无法加载css和js文件 errors

我在互联网上到处搜索,但我找不到任何解决方案。

1 个答案:

答案 0 :(得分:1)

在您的评论中,您的配置文件中包含以下内容:

location /blog/ {
    proxy_pass http://107.170.8.156/;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { 
    expires 365d; 
}

正则表达式位置优先于前缀位置,因此,任何以.css.js结尾的URI都不会发送到代理。

您需要将以/blog/开头的任何URI发送到代理,而不管文件扩展名是什么。使用^~修饰符可使前缀位置优先于任何正则表达式位置。尝试:

location ^~ /blog/ {
    proxy_pass http://107.170.8.156/;
}

有关详细信息,请参阅this document