网页页面无法在nginx上正确打开

时间:2018-02-23 21:29:39

标签: nginx

我正在尝试使用Ubuntu在nginx上设置Question2Answer网站(yoalfaaz.com)。现在,网站的主页确实加载,但任何其他页面都没有正确加载。大多数情况下,当我点击我网站上的任何帖子时,它会再次打开主页,有时会打破布局。

这里是sites-available file

server {
        listen 80 ;
        listen [::]:80 ;

        root /var/www/yoalfaaz.com/html;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name yoalfaaz.com www.yoalfaaz.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.php$is_args$args;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #

        location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        location ~ /\.ht {
        deny all;
        }
}

现在,之前只有主页正在打开,而对于每个其他页面,我都收到404 Not Found错误。所以我对try_files行进行了一些更改,之后,网站页面没有以正确的方式打开。

我还检查过任何类型的错误,但没有,如果我尝试nginx -t,那么它也会显示成功。伙计们,请帮助我。

1 个答案:

答案 0 :(得分:1)

显然问题不是nginx,而是你的应用程序。

查看您网页的HTML,我看到了:

 
<link href="./qa-plugin/q2a-embed-master/qa-embed.css" rel="stylesheet">
<link rel="stylesheet" href="./qa-plugin/q2a-tag-list-widget-master/tag-list.css?" TYPE="text/css">
<link rel="stylesheet" href="./qa-plugin/Welcome-Widget-master/welcome-widget.css?" TYPE="text/css">

CSS文件的网址是相对于当前路径的,因此如果网址包含类似路径或子目录的内容,基本上位置会发生变化。

以此网址为例:http://yoalfaaz.com/4966/pardesi-ke-naam

尝试在该网页上加载CSS文件./qa-plugin/q2a-embed-master/qa-embed.css会加载http://yoalfaaz.com/4966/qa-plugin/q2a-embed-master/qa-embed.css,从而导致404错误。

您应该更改代码以输出绝对网址或根目录相对网址。

示例:

  • 绝对网址:http://yoalfaaz.com/qa-plugin/q2a-embed-master/qa-embed.css//yoalfaaz.com/qa-plugin/q2a-embed-master/qa-embed.css(最后一个是协议相对网址)
  • 根相对网址:/qa-plugin/q2a-embed-master/qa-embed.css(始终从域的根开始)