golang 开发后端基础(2)

zidea · · 836 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

继续周日内容,我们看一下 home.html 文件,在 index 中我们引入 style.css 作为样式表来控制页面的显示。将 style.css 放置 public/css 目录下。

运行程序,我们没有看到页面有任何的变化,说明样式没有成功加载。看一下是什么原因,打开控制台看一下有关 style.css 的加载信息,发现 html 加载content type 为 text/html ,这个没有问题,而 css 的 content type为 text/plain 而不是 text/css 所以没有样式,我们来尝试解决一下这个问题。

在之前代码的基础之上,我们添加名称 contentType 的 string 类型变量让他接受类型, 然后根据文件扩展名来给出不同 contentType 表示加载文件的类型,大家注意到了 css 文件我们给出 contentType 为 text/css

在 style.css 中给body背景色为蓝色

这一次运行程序,发现页面背景色变为蓝色说明已经加载了 css 文件并解析他。

接下来为了提高性能,我们用 buffer 来读取文件,这是只是读取文件方式不同,其他内容不变。大家可以看一下

修改项目结构在 src 下加一个文件夹 main 文件夹,然后将 main.go 文件放到这个文件夹下。目的是为了让项目结构更清晰。

删除 main.go 文件中的原有的代码,重新写一下。这一次我们使用 http.Dir 让我们可以直接读取服务端的目录结构,可以同 http 访问服务端的文件夹以及其内容。有点像打开svn 服务

好到现在为止,我们对用 go 写 web 应用有一定的了解,不过现在渲染的界面都是静态界面,接下来我们来通过模板的形式来动态地给用户展示页面,先看以一个简单的示例。

这里新建一个模板,可以给模板起任意的名称,然后解析 html 字符串。tmpl 执行模板时第二个参数我们给nil 第二参数是让模板里传数据

动态模板,我们上面的代码基础上进行修改,将 Execute 第二个参数替换为 url 中内容,然后将模板中添加占位符来显示传入的数据,{{.}}代表全部。

接下里代码很多,看上去有点复杂,其实很好懂,我就不解释了,大家自己看吧。我已经把需要看的内容标记出来

早上好!


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:zidea

查看原文:golang 开发后端基础(2)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

836 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传