V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hongfeiyu
V2EX  ›  程序员

go 与 nginx 搭建服务器无法读取静态文件?

  •  
  •   hongfeiyu · 2016-05-20 18:51:22 +08:00 · 2847 次点击
    这是一个创建于 2905 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网站 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/;
    }
    

    但是感觉没有起到作用

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

    13 条回复    2016-05-21 19:19:49 +08:00
    hongfeiyu
        1
    hongfeiyu  
    OP
       2016-05-20 18:57:18 +08:00
    如何把项目根目录设置出来?
    ryd994
        2
    ryd994  
       2016-05-20 19:58:03 +08:00 via Android
    RTFM
    root /home/user/project/;
    hongfeiyu
        3
    hongfeiyu  
    OP
       2016-05-20 20:13:34 +08:00
    @ryd994 请问直接以 nginx 命令启动 nginx 有什么问题吗,是不是不会重载配置文件?
    hongfeiyu
        4
    hongfeiyu  
    OP
       2016-05-20 20:17:45 +08:00
    @ryd994 如果这样可以的话,那么用 alias 是没有任何区别的啊,实际上我改用 root 还是一样的问题
    Balthild
        5
    Balthild  
       2016-05-20 20:34:45 +08:00
    location /static/ {
    root /home/user/project/static/;
    }
    这样试试看
    顺便应该把组给 nginx
    hongfeiyu
        6
    hongfeiyu  
    OP
       2016-05-20 20:49:49 +08:00
    @Balthild 把组给 nginx 具体怎么操作? 一直都是以 root 运行 nginx 啊
    Balthild
        7
    Balthild  
       2016-05-20 20:55:46 +08:00
    @hongfeiyu 确保组一致就行 用 root 跑 Nginx 那么这个文件夹的组应该也是 root 的
    虽然貌似静态资源不影响?
    tSQghkfhTtQt9mtd
        8
    tSQghkfhTtQt9mtd  
       2016-05-20 21:05:06 +08:00 via Android
    用 root 跑 nginx 确定安全吗。。
    hongfeiyu
        9
    hongfeiyu  
    OP
       2016-05-20 23:11:50 +08:00
    @liwanglin12 有什么问题吗
    msg7086
        10
    msg7086  
       2016-05-21 05:06:15 +08:00
    @hongfeiyu 有啊。安全问题。
    ryd994
        11
    ryd994  
       2016-05-21 05:52:44 +08:00 via Android
    @hongfeiyu root 跑 Nginx ,这个可以问问 Redis
    不过我记得 Nginx 实际用户是在配置文件里配置的,用 root 启动然后会自动降权到该用户
    所以目录权限也应该给那个用户
    直接运行 nginx 没有问题,不过一般建议用 service 控制
    关于 alias 不是不能用,你要考虑更多路径的时候,不能全用 alias 吧,还是 root 合适
    你看看 error.log 吧
    hongfeiyu
        12
    hongfeiyu  
    OP
       2016-05-21 10:05:03 +08:00
    @ryd994
    @msg7086
    @Balthild
    谢谢,已经解决了
    JustSt
        13
    JustSt  
       2016-05-21 19:19:49 +08:00
    应该用 http 包里面的 Dir 什么的函数可以解决的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2381 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:57 · PVG 22:57 · LAX 07:57 · JFK 10:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.