分享

Go语言开发:在HTML模板中引入js及其他静态文件

 F2967527 2019-08-06

问题:

用go语言开发,在html页面中,引入js文件无效,写在js文件中的函数无法调用,也没有报错;js代码直接写html页面中,可以调用,但是看起来太乱了,不舒服。这个问题困扰了好久,在网上搜了好多资料都无法解决问题,今天终于解决了,TND,看到答案的时候,原来这么简单。

参考文章

Go语言引用css和js文件
go的template模板怎么才能引入css和js等静态文件?
致敬原创,为上面的两位作者点赞。
网上的文章太多千篇一律,很多都是抄的,不解决问题。

我的问题:

在写一个小项目的过程中,在html网页中直接写js代码,是有效的,但是将js代码单独放到js文件中就无效了,无法调用其中的函数,目录大概是这样

sszxr:blog sszxr$ tree.├── gomod│ ├── accesscontrol.go│ ├── app.go│ ├── login.go│ ├── register.go│ └── session.go├── main.go├── models│ ├── article.go│ ├── homepage.go│ └── user.go├── static│ ├── css│ │ └── login.css│ └── js│ ├── blog.js│ ├── lib│ │ ├── jquery-3.3.1.min.js│ │ └── jquery.url.js│ └── reload.min.js├── template│ ├── accountset.html│ ├── login.html│ ├── register.html├── utils│ ├── myUtils.go│ └── mysqlUtil.go└── validator └── regexp.go
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

在html页面中是这样引用的

<!DOCTYPE html><html lang='en'><head>    <meta charset='UTF-8'>    <title>博客账号 - 登录</title>    <script src='../static/js/lib/jquery-3.3.1.min.js'></script>    <script src='../static/js/lib/jquery.url.js'></script>    <script src='../static/js/blog.js'></script></head><body style='background-image:url(http://phc94on01.bkt./%E5%8D%D%89.jpg);      background-size: cover;background-color: rgba(214,210,207,0.45)'><div style='width:100%;height: 600px'></div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

看了网上的好多攻略,主要因为是Go语言的问题,Go语言太不火了,好多问题都搜不到答案,网上搜到的答案基本都不能解决问题。
参考上面两篇文章的答案,是因为Go语言无法直接引用静态文件,必须要做静态服务才能引用,而做静态服务,大概就是要把静态文件,包括js文件,css文件的存放路径,告诉go编译器,不然的话,找不到文件,所以在html页面中无法引用js中的函数或代码。
也就是在main文件中,在路由监听前,要导入js文件路径

fs := http.FileServer(http.Dir('static')) http.Handle('/static/', http.StripPrefix('/static/', fs)) http.HandleFunc('/', app.Login) http.HandleFunc('/login', app.Login) http.HandleFunc('/register', app.Register)
  • 1
  • 2
  • 3
  • 4
  • 5

这样就解决问题了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多