前言
光是能够写出hello world之类的程序还远远不够,网站有前后之分,前端部分会有样式表,脚本,html静态文件,图片资源,甚至有音频视频多媒体,pdf等等,所以,静态资源的处理是必不可少的。
这里提供一个参考实现:
利用go bindata打包静态资源。
注意,本人不赞成使用这种方式打包资源,在一般网站里面,静态资源,图片样式表脚本+组件起码都200-300mb这样打包到程序里面真的不好,而且,万一写的后端程序需要直接上传文件到服务器空间----就例如php网站那样,怎么实现好?况且,服务端就只解释编译动态语言好了,静态资源的就不要管了。
还记得php是怎么处理静态资源的?
入门demo第一课里面就提到了,直接将php项目放到apache下面,好了,今天我们的解决方案也是同样原理,不过用的是nginx。
nginx安装
安装就不提了,在这里下载:
然后解压缩。。我习惯压缩到d盘,譬如:
对了,我这里的环境是win10 64位+go1.11,算是很常见的开发环境了,启动,然后访问:
好了,成功访问。
本地域名添加+静态资源代理
接下来,我们要将网站的访问都交给nginx处理。
首先,为自己的项目网站配置一个开发用的本地域名。
如何配置看这里:
本地电脑通过修改hosts文件实现域名本地解析
几个要点:
例如,我将项目域名定为:
www.dev-go-hello.com
这样修改:
好了,然后用这个域名访问我们的hello world 玩具网站:
本机域名添加成功。
下面,在玩具项目里面添加一些静态资源:
譬如这几个:
webContent就是静态资源的根目录了。。嗯,这名字只是个人爱好,随意改即可。
然后,在nginx里面配置:
参考:
Nginx实现静态资源服务器
首先,为了dev-go-hello这个网站新建一个配置文件:
而里面的内容为:
server
{
listen 80;
server_name www.dev-go-hello.com;
#####静态目录配置
location /image/ {
root C:/Users/HASEE/go/src/awesomeProject/WebContent/;
autoindex on;
}
##location / {
## #将全部请求都转发到go服务端
## proxy_pass http://localhost:9090;
## }
##算了 ,以下结尾的都是服务端,需要交给服务器作处理。
location ~* \.(do|aspx|jsp|nutz)$ {
#将全部请求都转发到go服务端
proxy_pass http://localhost:9090;
}
}