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

2016-05-20 18:51:22 +08:00
 hongfeiyu

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

但是感觉没有起到作用

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

2958 次点击
所在节点    程序员
13 条回复
hongfeiyu
2016-05-20 18:57:18 +08:00
如何把项目根目录设置出来?
ryd994
2016-05-20 19:58:03 +08:00
RTFM
root /home/user/project/;
hongfeiyu
2016-05-20 20:13:34 +08:00
@ryd994 请问直接以 nginx 命令启动 nginx 有什么问题吗,是不是不会重载配置文件?
hongfeiyu
2016-05-20 20:17:45 +08:00
@ryd994 如果这样可以的话,那么用 alias 是没有任何区别的啊,实际上我改用 root 还是一样的问题
Balthild
2016-05-20 20:34:45 +08:00
location /static/ {
root /home/user/project/static/;
}
这样试试看
顺便应该把组给 nginx
hongfeiyu
2016-05-20 20:49:49 +08:00
@Balthild 把组给 nginx 具体怎么操作? 一直都是以 root 运行 nginx 啊
Balthild
2016-05-20 20:55:46 +08:00
@hongfeiyu 确保组一致就行 用 root 跑 Nginx 那么这个文件夹的组应该也是 root 的
虽然貌似静态资源不影响?
tSQghkfhTtQt9mtd
2016-05-20 21:05:06 +08:00
用 root 跑 nginx 确定安全吗。。
hongfeiyu
2016-05-20 23:11:50 +08:00
@liwanglin12 有什么问题吗
msg7086
2016-05-21 05:06:15 +08:00
@hongfeiyu 有啊。安全问题。
ryd994
2016-05-21 05:52:44 +08:00
@hongfeiyu root 跑 Nginx ,这个可以问问 Redis
不过我记得 Nginx 实际用户是在配置文件里配置的,用 root 启动然后会自动降权到该用户
所以目录权限也应该给那个用户
直接运行 nginx 没有问题,不过一般建议用 service 控制
关于 alias 不是不能用,你要考虑更多路径的时候,不能全用 alias 吧,还是 root 合适
你看看 error.log 吧
hongfeiyu
2016-05-21 10:05:03 +08:00
@ryd994
@msg7086
@Balthild
谢谢,已经解决了
JustSt
2016-05-21 19:19:49 +08:00
应该用 http 包里面的 Dir 什么的函数可以解决的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/280110

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX