nginx作为反向代理go作为服务器无法读取静态文件

网站html中有如下代码:

<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" />

现在问题是浏览器无法读取到这些文件
使用go作为服务器,nginx作为反向代理
html文件放在 /home/user/project/目录下
static等文件夹也放在该目录下
/home/user/project/是项目根目录

nginx做了如下配置

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

但是感觉没有起到作用

请问如何在不修改网页原本代码的前提下使浏览器正确找到指定的文件?

阅读 7k
2 个回答

拿一个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;
    }
}

没有解决我的问题 还是访问不了 以下是我的conf文件配置 求助
` server {

    listen 80;
    server_name mp.yitiegongfang.com;
    rewrite ^(.*)$ https://${server_name}$1 permanent;

}

server {

      listen       443 ssl;
      server_name  mp.yitiegongfang.com; #你的域名


      # 配置https
      ssl_certificate /www/crt/1_mp.yitiegongfang.com_bundle.crt; #你申请的nginx中的ssl证书
      ssl_certificate_key /www/crt/2_mp.yitiegongfang.com.key;     #你申请的nginx中的key
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
      ssl_prefer_server_ciphers on;




    charset utf-8;
    access_log  /root/go/src/easy_wallpaper_api/access.log; #该目录建议是你的部署文件目录

    
    location /(css|js|fonts|img)/ {
        access_log off;
        expires 1d;


        root "/root/go/src/easy_wallpaper_api/static";#该文件是你beego项目中的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:8066;  #代理指向的beego项目地址
    }

}
`

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题