Heim  >  Fragen und Antworten  >  Hauptteil

golang – Nginx als Reverse-Proxy, da der Server keine statischen Dateien lesen kann

Der HTML-Code der Website enthält den folgenden Code:

<link rel="stylesheet" href="/static/css/bootstrap.min.css" />
<link rel="stylesheet" href="/static/css/bootstrap-theme.min.css" />
<link rel="stylesheet" href="/static/css/jquery.treegrid.css" />
<link rel="stylesheet" href="/static/css/browseraudit.css" />

Das Problem besteht nun darin, dass der Browser diese Dateien nicht lesen kann.
Go als Server und Nginx als Reverse-Proxy verwenden.
HTML-Dateien werden im Verzeichnis /home/user/project/ abgelegt.
Statische und andere Ordner werden ebenfalls in diesem Verzeichnis abgelegt
/ home/user/project/ ist das Stammverzeichnis des Projekts

nginx hat die folgende Konfiguration

location /static/ {
    alias /home/user/project/static/;
}

Aber es fühlt sich nicht so an, als ob es funktioniert

Wie kann ich dafür sorgen, dass der Browser die angegebene Datei korrekt findet, ohne den Originalcode der Webseite zu ändern?

大家讲道理大家讲道理2692 Tage vor1140

Antworte allen(1)Ich werde antworten

  • 怪我咯

    怪我咯2017-05-16 17:18:46

    拿一个beego的nginx配置文件给你参考,大概原理是除了指明URL里带有的css,js,fonts,img字符的nginx接管,如果文件不存在都转发到后端请求,相当于GO开启的web服务器

    server {
        listen       80;
        server_name  .a.com;
    
        charset utf-8;
        access_log  /home/a.com.access.log;
    
        location /(css|js|fonts|img)/ {
            access_log off;
            expires 1d;
    
            root "/path/to/app_a/static";
            try_files $uri @backend;
        }
    
        location / {
            try_files /_not_exists_ @backend;
        }
    
        location @backend {
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host            $http_host;
    
            proxy_pass http://127.0.0.1:8080;
        }
    }

    Antwort
    0
  • StornierenAntwort