个人博客项目(PHP+vue+golang)我是一个phper,有两年多的工作经验。写了这么久的代码,总是完成上级交代的任务。闲暇之余,在技术社区闲逛,并没有为自己写个人主页。总觉得少了点什么。我之前只用过Vue。我有一点前端基础。公司内部也在用golang,能看懂一点golang代码。我也写了一些简单的golang代码,所以我决定写一个博客项目。博客首页是用laravel框架实现的。博客后台采用前后端分离。博客主页:https://github.com/Wanchaocha...在线访问:http://www.littlebug.vip除了使用laravel框架外,还介绍了BaseModel和Reponsitory,目前还是用的公司重新封装了模型,使用起来非常方便简单,只要在controller中注入Reponsory,增删改查就会变得非常方便$list包含分页对象,连烦人的分页都省了.当然还有更多方便的功能等着大家去看看代码博客后台(前端部分)https://github.com/Wanchaocha...博客后台部分也是坑最多的地方.毕竟不是专业的前端。看教程、百度、请教同事,真是辛苦了。首先是跨域处理(本地环境)//这里是vue.config.jsconsttarget=env==='production'?'http://api.littlebug.vip/':'http:///localhost:8083/'module.exports={devServer:{proxy:{'/adm':{//使用“/api”而不是“http://localhost:8081/"target:target,//源地址changeOrigin:true//改变原点}}},baseUrl:BASE_URL,chainWebpack:config=>{config.resolve.alias.set('@',resolve('src'))//例如,key和value是自己定义的。set('@@',resolve('src/components')).set('_c',resolve('src/components')).set('_conf',resolve('config'))},//打包productionSourceMap时不生成.map文件:false}//只要是adm开头的api都会被代理,如果下线,会代理到我golang占用的8083端口上的httpservice//如果在线,则请求在线接口。这里还有一个坑,就是静态资源的加载,也就是上面的**BASE_URL**因为我的服务器在香港,需要20+s去加载打包后的2.8m静态资源文件。。。我真的吐血了,然后想到了一个办法,就是Fang在阿里云的oss上,个人网站,一点流量都没有,冲10我不知道什么时候用完。不知道什么时候用完。我在香港买服务器主要是因为不需要备案。我决定做这个个人项目后就买了它。我以为我可以设置一个VPN什么的,但是一个朋友告诉我我的阿里云和腾讯服务器会定期扫描,看看你是否在上面设置了个人VPN。如果是的话,服务端会被收回。。。下一步就是封装api请求//该加header时加上header,开启mock模式,获取mock数据//然后开始定义自己的接口,然后是业务逻辑,没什么好说的npmrunbuild//npmrunbuild之后,会打包一个dist文件夹//我会把dist里面的文件全部拉到oss//和服务器只需要让nginx指向这个index.htmlserver{listen80;#listen[::]:80;服务器名称admin.littlebug。贵宾;索引index.html;根/home/www/web/blog_admin/;location/{try_files$uri$uri//index.html;位置~*\.(js|css|gif|jpg|jpeg|png|bmp|swf|ttf|woff)${过期30天;休息;}}}//nginx的配置就这么简单发布脚本cd/root/wwwroot/blog_viewgitpullrm-rf/home/www/web/blog_admin/*cp-rf/root/wwwroot/blog_view/dist/index.html/主页/www/web/blog_adminchownnginx:nginx-R/home/www/web/blog_admin//把临时目录的index.html拉过来就行了。博客背景(接口部分)https://github.com/Wanchaocha...关于golang接口部分//gin框架简单封装,如接口的返回,成功,失败//orm是开源的我们公司同事的gosqlgosql//,我们公司开源的golibgolib,用起来很方便。简单路由部分//除了滑块验证码和登录,其他接口都要验证token,所以除了这两个接口,其他接口都使用路由分组+中间件。项目之初并没有使用gomod模式。后来在本地调试。gomod,然后在服务端调试本地环境。最糟糕的是go有两个官方包(比如x,y等)需要翻墙才能down。网上很多方法都失败了。后来设置了goproxy。只有okvim~/.zshrcgoproxy(){exportGOPROXY=https://goproxy.ioecho"GOPROXYON"}ungoproxy(){unsetGOPROXYecho"GOPROXYOFF"}source~/.zshrc//隐藏的好处,https://goproxy.io的代理不是很稳定。我也在香港的服务器上架了一个,速度还是很不错的。//把上面的地址改成47.75.200.48:8888,这样nginx就可以代理golang服务了//当然可以可以直接用golang启动,所以没有问题,不过我更喜欢用ngixn来配置,而你也可以看到详细的日志server{listen80;server_nameapi.littlebug.vip;charsetutf-8;#如果是css,js|fonts|png|svg|html|txt资源文件直接由nginx处理,不提交给go处理的背景#nginx会在root对应的目录下去寻找这些资源文件location/{proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header主机$http_host;proxy_redirect关闭;proxy_passhttp://localhost:8083;如果($request_method='OPTIONS'){add_header'Access-Control-Allow-Origin''*';add_header'Access-Control-Allow-Methods''GET,POST,OPTIONS';add_header'Access-Control-Allow-Headers''DNT、X-CustomHeader、Keep-Alive、User-Agent、X-Requested-With、If-Modified-Since、Cache-Control、Content-Type、multipart/form-data,应用程序/json,访问令牌';返回204;}add_header'Access-Control-Allow-Origin''*';add_header'Access-Control-Allow-Methods''GET,POST,OPTIONS';add_header'Access-Control-Allow-Headers''DNT、X-CustomHeader、Keep-Alive、User-Agent、X-Requested-With、If-Modified-Since、Cache-Control、Content-Type、multipart/form-data,application/json,访问肯';}}最后推荐一下腾讯的免费滑块验证码http://admin.littlebug.vip。在我的项目中体验之后,整个项目就差不多完成了。如果觉得有用,请移步给个小star。如果有什么写的比较低的地方,可以提一下。界面部分我会积极改进...我审美有限...但我会尽力改进