※我以example.com
为例
我正在使用ELB和EC2开发应用程序。 结构如下。
当用户访问/ manage / *时,ELB将转移到wordpress托管实例。
这是ELB设置。
关于ELB,它可以工作,但是在转移到wordpress端后,CSS和JS文件的响应显示为404。
当我访问/ magazine / * URL时,加载wordpress主题的动画开始工作,但由于未加载css和js而卡住了。
我猜这是由于nginx配置引起的,但是无法解决。
这是配置文件的内容。我只添加/etc/nginx/conf.d/vhosts.conf
并编写一些设置。我没有碰其他文件。
# vhosts.conf
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name example.com;
root /var/www/html;
location /magazine {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
在/var/www/html
下,项目的结构如下。
/wp-content
/wp-admin
/wp-include
index.php
wp-config.php
有关其他信息,
siteurl
中的home
和wp_options
都设置为https://example.com/magazine
。答案 0 :(得分:0)
由于您不是从URL根目录提供wordpress,因此必须告诉wordpress从子目录加载资源。 WordPress支持文章中介绍了如何执行此操作。 [1]
您检查 WP_HOME 和 WP_SITEURL 变量是否设置正确?
您能否编辑问题并包括浏览器尝试为css和js文件加载的URL,因为它在屏幕截图中并不完全可见?
编辑:
由于有了其他信息,我们知道wordpress可以按预期构造路径。因此,现在我与您分享nginx导致此问题的观点。
我环顾四周,发现nginx配置有两个可能的问题:
location ~ ^/magazine(.*) {
root /var/www/html;
try_files $1 $1/ /index.php?$args;
}
注意:我不知道目录重定向$1
和默认重定向到/index.php?$args
是否适合提供js / css资产。如果不必要,您可能应该删除它们。
[1] https://wordpress.org/support/article/changing-the-site-url/#changing-the-site-url
[2] https://serverfault.com/a/258540/531099
[3] https://serverfault.com/a/455853/531099