nodejs设置静态资源路径:
app.use(express.static(path.join(__dirname, 'public')));//静态资源路径

这样设置后项目可以直接使用绝对路径如/css/style.css 来访问/public/css/style.css这样真实的路径

就是可以隐藏public这一层路径,如果我们直接用nodejs做http服务器的话没什么问题,但是如果前面挂nginx来代理转发端口的话/css/style.css就会报404

所以在做代理转发的时候需要做一个静态资源路径的映射,把/css,/js,/images等资源文件映射到/public/css,/public/js,/public/images等这样才可以访问,否则

需要把public中所有资源拷贝到和public同级目录下,但是这样目录就特别乱了,不喜欢乱的话就如下面操作,静态资源路径映射:

nginx的虚拟主机配置文件:
server {
        listen       80;
        server_name www.baidu.com;#你的域名
        index index.html index.htm index.ejs;#默认首页
        root /home/nodelog;#项目根目录
#映射nodejs静态资源路径
        location ~ ^/(images/|js/|css/|font/|fonts/) {#把nodejs中public下的文件夹列出在这里即可完成映射
          root /alidata/nodejs/nodelog/public;
          access_log off;
          expires max;
        }
#缓存图片
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
                expires 30d;
        }
#缓存js和css
        location ~ .*\.(js|css)?$
        {
                expires 1h;
        }
#代理nodejs
        location / {
                proxy_pass http://127.0.0.1:3000/;

        }
#重写规则和日志文件
        include /nginx安装目录/conf/rewrite/default.conf;
        access_log  /日志路径/nodelog.log;
}


所有评论
加载评论 ...
发表评论