欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Nginx無法加載css文件

老白1年前8瀏覽0評論

我最近決定從Apache2轉到Nginx。我在CentOS服務器上安裝了Nginx,并進行了基本配置。 當我試圖在瀏覽器(FF/Chrome)中加載我的網站時,我注意到css文件沒有被加載。我檢查了錯誤控制臺,看到了這條消息:

錯誤:未加載樣式表http://example.com/style.css,因為其MIME類型“text/html”不是“text/css”。

我檢查了Nginx配置,一切似乎都很好:

http {
    include /etc/nginx/mime.types;
    ..........
}

css文件的mime類型在/etc/nginx/mime.types中設置正確。

text/CSS CSS;

一切似乎都配置好了,但我的css文件仍然沒有加載。我無法解釋。

另一件值得一提的事。最初我使用epel庫安裝Nginx,我得到了一個舊版本:0.8...在我看來,我的問題是那個版本的一個bug,所以我卸載了0.8版本,將nginx庫添加到yum,然后安裝了最新版本:1.0.14。我以為新版本會解決我的問題,但不幸的是它沒有,所以我的想法用完了。

我很感激任何幫助。

配置文件:

/etc/nginx/nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

/etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
         root    /usr/share/nginx/html;
         index  index.html index.htm index.php;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
         include        fastcgi_params;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

/etc/nginx/mime.types

types {
    text/html                             html htm shtml;
    text/css                              css;
    text/xml                              xml;
    image/gif                             gif;
    image/jpeg                            jpeg jpg;
    application/x-javascript              js;
    application/atom+xml                  atom;
    application/rss+xml                   rss;
    ..........................................
    other types here
    ..........................................
}

放置include/etc/nginx/mime . types;在location / {下,而不是在http {下為我解決了這個問題。

我在網上找到了一個變通方法。我在/etc/nginx/conf.d/default.conf中添加了以下內容:

location ~ \.css {
    add_header  Content-Type    text/css;
}
location ~ \.js {
    add_header  Content-Type    application/x-javascript;
}

現在的問題是對我的css文件的請求沒有被很好地重定向,好像root沒有被正確設置。 在錯誤日志中我看到了

2012/04/11 14:01:23[錯誤]7260 # 0:* 2 open()"/etc/nginx//html/style . CSS "

因此,作為第二種解決方法,我將根目錄添加到每個定義的位置。 現在它工作了,但似乎有點多余。root不是繼承自/ location嗎?

由于您的“location /”指令,style.css實際上是通過fastcgi處理的。所以是fastcgi在提供文件(nginx & gtfastcgi & gt文件系統),而不是直接文件系統(nginx & gt文件系統)。

出于一個我還沒有弄清楚的原因(我確信在某個地方有一個指令),NGINX將mime類型text/html應用于fastcgi提供的任何東西,除非后端應用程序明確指出不是這樣。

罪魁禍首是這個配置塊,具體來說:

location / {
     root    /usr/share/nginx/html;
     index  index.html index.htm index.php;
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
     include        fastcgi_params;
}

應該是:

location ~ \.php$ { # this line
     root    /usr/share/nginx/html;
     index  index.html index.htm index.php;
     fastcgi_split_path_info ^(.+\.php)(/.+)$; #this line
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; # update this too
     include        fastcgi_params;
}

這一改變確保只有*。fastcgi請求php文件。此時,NGINX將應用正確的MIME類型。如果您有任何URL重寫發生,您必須在location指令(location ~)之前處理它。php$)以便派生出正確的擴展并正確地路由到fastcgi。

請務必閱讀這篇關于使用try_files的其他安全性考慮的文章。考慮到安全隱患,我認為這是一個特性,而不是一個錯誤。

我也遇到了這個問題。這讓我很困惑,直到我意識到哪里出了問題:

你有這個:

include       /etc/nginx/mime.types;
default_type  application/octet-stream;

你想要這個:

default_type  application/octet-stream;
include       /etc/nginx/mime.types;

nginx中似乎有一個bug或者文檔中有一個缺陷(這可能是預期的行為,但是很奇怪)

我遵循了rest答案中的一些提示,發現這些奇怪的行為很有幫助(至少對我來說是這樣)。

1)我向服務器塊添加了以下內容:

location ~ \.css {
 add_header Content-Type text/css;
}

我重新加載了nginx,得到了這個錯誤。日志:

2015/06/18 11:32:29[錯誤]3430 # 3430:* 169 open()"/etc/nginx/html/CSS/my site . CSS "失敗(2:沒有這樣的文件或目錄)

2)我刪除了行,重新加載nginx,得到了工作css。 我無法解釋發生了什么,因為我的conf文件變成了以前的樣子。

我的例子是VirtualBox上的clean xubuntu 14.04、nginx/1.9.2、/etc/hosts中的一行127.51.1.1 mysite和相當簡單的/etc/nginx/nginx.conf,帶有一個服務器塊:

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include /etc/nginx/mime.types;

    server {
        listen 80;
        server_name mysite;

        location / {
            root /home/testuser/dev/mysite/;
        }
    }
}

在nginx.conf文件中,將mime.types添加到http主體中,如下所示:

http {
    include /etc/nginx/mime.types;
    include /etc/nginx/conf.d/*.conf;
}

現在轉到終端,運行以下命令來重新加載服務器:

sudo nginx -s reload

打開您的web瀏覽器并進行硬重新加載:右鍵單擊重新加載按鈕并選擇硬重新加載。在Chrome上你可以按Ctrl+Shift+R

我也面臨這個問題,我嘗試了很多解決方案,但沒有一個真正適合我

我是這樣解決的:

A.將域文檔根目錄(比如我的根目錄是/var/www/nginx-demo)的所有權授予nginx用戶(www-data)以避免任何權限問題:

sudo chown -R www-data: /var/www/nginx-demo

B.確認您的虛擬主機服務器塊符合這個標準(假設我使用localhost作為我的server_name,我的root作為/var/www/nginx-demo/website)

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

   server_name localhost;

   root /var/www/nginx-demo/website;
   index index.html;

   location / {
            try_files $uri $uri/ =404;
   }
}

C.測試Nginx配置的語法是否正確:

sudo nginx -t

如果配置語法中沒有錯誤,輸出將如下所示:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

D.重新啟動Nginx服務以使更改生效:

sudo systemctl restart nginx

E.使用鍵盤按鍵Ctrl + F5或Ctrl + Fn + F5,在瀏覽器中硬刷新您的網站,以避免緩存文件的標題不正確。

僅此而已。

我希望這有所幫助。

實際上,我花了很長時間在這一頁上瀏覽了以上所有的答案,但都無濟于事。我只是碰巧使用下面的命令更改了目錄和子目錄的所有者和權限。我使用以下命令將/usr/share/nginx/html中的web項目目錄的所有者更改為root用戶:

chown root/usr/share/nginx/html/myweb project dir/*

最后,使用以下命令更改了該目錄和子目錄的權限:

chmod 755/usr/share/nginx/html/mywebprojectdir/*

注意:如果被拒絕,您可以使用sudo

對我來說,這是安裝在網絡瀏覽器上的廣告攔截器。它不讓加載style.css

Debian 10.6上的Nginx 1.14.2也出現了同樣的問題。

它可以通過設置charset變量來解決。通過在server_name指令下的服務器塊中添加以下內容:

charset utf-8; # Use the appropriate charset in place of "utf-8"

我在Windows中也遇到了同樣的問題。 我添加了:include mime.types在我的nginx.conf文件中的http{下。 然后還是沒有效果..所以我查看了error.log文件,注意到它試圖對。css和javascript文件,但在它們之間有一個/http文件夾。例如: 我的。css在:& quotc:\ Users \ PC \ Documents \ nginx-server \ player-web \ CSS \ index . CSS & quot; 它是從:& quotc:\ Users \ PC \ Documents \ nginx-server * html * \ player-web \ CSS \ index . CSS & quot; 所以我把我的播放器網絡文件夾換成了html文件夾,它工作了;)

我也有同樣的問題,上面的問題對我來說沒有任何影響,我所做的是把我的位置php放在任何其他位置塊之上。

location ~ [^/]\.php(/|$) {
fastcgi_split_path_info  ^(.+\.php)(/.+)$;
fastcgi_index            index.php;
fastcgi_pass             unix:/var/run/php/php7.3-fpm.sock;
include                  fastcgi_params;
fastcgi_param   PATH_INFO       $fastcgi_path_info;
fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
** The below is specifically for moodle **
location /dataroot/ {
internal;
alias <full_moodledata_path>; # ensure the path ends with /
}

經過幾個小時的努力,我的情況與這里的其他人不同。它是我用作資源的隱藏文件夾的路徑的一個文件夾中的一個點:

<link type = "text/css" href="../../.res/css/bootstrap.min.css" rel="stylesheet">

這導致了這些樣式不能在瀏覽器中呈現,盡管它們從nginx加載時沒有錯誤。只有Firefox(不是Chrome)抱怨css的MIME類型不是css而是文本。

我知道這很晚了,但是在搜索了互聯網上的解決方案之后,雖然所有的注意力都集中在配置上,實際上html本身也同樣重要

在配置端,在你定義了你的項目根之后,你應該指向你的統計數據,特別是css,比如像這樣——我的css在root/src中

location ~*/src/.css {  
    include /etc/nginx/mime.types;
    add_header Content-type text/css;
}

在你的HTML中: 確保正確使用rel和類型

& ltlink rel = & quot樣式表& quothref = & quotsrc/style . CSS & quot;type = & quottext/CSS & quot;& gt

希望這能在將來幫助其他人

我必須加上星號才能讓它工作

location/* { include/usr/local/etc/nginx/mime . types;}

將此添加到您的ngnix conf文件中

add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://assets.zendesk.com; font-src 'self' https://themes.googleusercontent.com; frame-src https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'";