Docker化节点应用程序不提供静态内容
我最近将我的nodejs应用程序移动到了docker容器中。 一切工作正常,除了静态文件(如鲍尔组件)不会被加载(404)。
怎么了?
在我的节点应用程序:
app.use('/static', express.static(__dirname + '/../public'));
我的.bowerrc
{ "directory": "public/lib" }
Bower下载并安装正确目录中的所有文件。 我在docker集装箱内自己检查了一下。
我的dockerfile:
FROM node:4-onbuild COPY . /src RUN cd /src/ && npm install && bower install --allow-root RUN ["node", "/src/server.js"] EXPOSE 3000
我之前遇到的类似问题,这是bower而不是docker容器的问题,bower不能很好的使用root权限,你需要使用node install命令来安装所有的依赖。 将Node和Angular依赖关系合并到一个package.json中,并使用节点的package.json来触发bower它可以解决你的问题。