之前遇到过一次简略我的项目,根本是动态页面,然而却是须要反对seo,而且根本所有信息都是在后盾配置生成,
所以就用了node+ejs 这样比拟传统的形式,在此记录一下全流程
所需原料: node+ejs+express+jquery
生成根本文件夹
npm install express express-generator -g //曾经装置了就疏忽express -e myapp //应用 express-generator 疾速生成我的项目
进入我的项目文件夹,装置根本依赖包,启动我的项目
cd myappnpm installnpm start
最初失去一个这样的文件夹
请留神:error.ejs 必须存在,相对不能删除;我的项目必须要有一个包容谬误显示的页面
ps:在app.js
外面有app.use(express.static(path.join(__dirname, 'public')));
指定动态资源,所以在页面外面的资源文件,比方图片的援用都是/images/a.png
;
打包
在实现了我的项目最初打包上线,因为之前我也没遇到这样的状况,都是应用vue+webpack这样的搬砖模式,遇到这货色也是摸着石头过河,找了半天找到了一个pkg
的打包工具,这个工具能够把node我的项目打包成为一个脱离node独立运行的可执行文件,并且默认能够反对3个平台,linux,macos,windows;
上面介绍打包步骤(请留神,如果你有更好的方法就不要用这样的做法了,如果有更好的方法心愿指教一下)
这里有篇更好的文章应用pkg打包node利用
如果你遇到打包进去短少文件之类的看看是不是配置的打包资源配置有问题,我是这样配置的
如果你的打包过程顺利的话会失去3个文件,别离对应3个平台的可执行文件,接下来把这3个文件放到服务器下,接下来配置服务器pm2.
pm2能够将你的程序挂在后盾执行,并且还有很多其余的性能,如果没有装置pm2就去装置一下.
启动服务
进入到你我的项目寄存目录,(这里假如你的我的项目叫app)如果你遇到了执行没有权限的报错,就在当前目录执行chmod 777 app
获取权限,获得权限之后执行 pm2 app
,胜利的话就会失去启动信息;
域名,代理配置
上面其实只是个代理转发,应用nginx 做了一下代理
server { listen 80; charset utf-8; server_name www.xsxs.com; location / { proxy_pass http://localhost:3000; #端口号 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}