关于express静态文件的问题
发布于 9 年前 作者 nichbar 6970 次浏览 最后一次编辑是 8 年前 来自 问答

在本地调试的时候静态文件是可以访问的,可是上传到服务器(阿里云ECS)后(确定有资源文件且路径没有错),访问资源文件时 express 的页面渲染是cannot GET logger里面的log是 404 找不到文件

	app.use(logger('dev'));
	app.use('/pic',express.static(path.join(__dirname, '/public')));

第二个use已经置于入口js的近乎最顶部,上面也就只有logger那个use了。 会不会是没有备案的服务器不能用资源文件? 对了,我是直接

	app.listen(80);

而没有用nginx,会不会跟这个也有关呢?

6 回复

是不路由没设置

@nichbar 这个似乎是因为你的认证后端里填的就是不带 /wechat 的地址吧。微信的请求好像都是基于那个地址发起的。

@raymonife 还有一个与路由相关的问题想问你,在本地调试的时候静态文件是可以访问的,可是上传到服务器后(确定有资源文件且路径没有错)就cannot GET 了

app.use(logger('dev'));
app.use('/pic',express.static(path.join(__dirname, '/public')));

第二个use已经置于入口js的近乎最顶部,上面也就只有logger那个use了。 莫非是没有备案的服务器不准用资源文件?

@nichbar 单看这两行代码似乎是没有什么问题的,应该是可以通过 /pic/a.jpg 获取到 /ROOT/public/a.jpg的,如果路径没有问题的话,感觉可能是权限问题了。 这个问题不太确定了。

再次表示不解

如果楼主用的是Mac,建议检查一下文件路径的大小写。Mac是大小写不敏感的,但一般的linux环境都对大小写敏感。我也常常碰到这样的问题。

回到顶部