linux – 从Go提供服务时,静态文件不会更新

linux – 从Go提供服务时,静态文件不会更新,第1张

概述我开始学习Go,并且遇到静态文件处理问题. 拥有这个: func main() { fs := http.FileServer(http.Dir("public")) http.Handle("/", fs) err := http.ListenAndServe(":8080", nil) if err != nil { log.Fatal("Lis 我开始学习Go,并且遇到静态文件处理问题.
拥有这个:

func main() {    fs := http.fileServer(http.Dir("public"))    http.Handle("/",fs)    err := http.ListenAndServe(":8080",nil)    if err != nil {        log.Fatal("ListenAndServe: ",err)    }}

文件夹结构:

main.gopublic    - index.HTML

当我运行go run main.go之后,在index.HTML中更改一些内容,然后再运行go run main.go,浏览器中的视图不会更改.所以我Google了一下,并认为它们是二进制文件,编译,因为main.go没有改变,go不会重新编译它.所以我运行go run -a main.go来强制重新编译,但它没有帮助.

我清除历史记录和缓存在Chrome中甚至尝试另一个浏览器和卷曲,但仍然看到旧的静态文件,而在文件系统中只有新版本.所以它不是关于浏览器.实际上,当我在浏览器中看到新版本的静态文件时,有一件事就是将public重命名为public2(例如),并在main.go中进行相同的更改.

这不是Go问题,因为此示例在其他用户中正常工作.所以它与我的系统有关.我在Vagrant的默认Ubuntu 16.04上运行该代码.

vagrantfile:

# -*- mode: ruby -*-# vi: set ft=ruby :Vagrant.configure("2") do |config|  config.vm.network "forwarded_port",guest: 8080,host: 8080  config.vm.network "forwarded_port",guest: 5432,host: 5432end

请求标题:

2017/11/19 18:25:45 request.RequestURI: /2017/11/19 18:25:45 request.RemoteAddr: 10.0.2.2:505842017/11/19 18:25:45 request.TLS: <nil>2017/11/19 18:25:45 Request headers:2017/11/19 18:25:45 Accept : [text/HTML,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8]2017/11/19 18:25:45 Accept-EnCoding : [gzip,deflate,br]2017/11/19 18:25:45 Accept-Language : [en-US,en;q=0.9,ru;q=0.8]2017/11/19 18:25:45 Cache-Control : [max-age=0]2017/11/19 18:25:45 Connection : [keep-alive]2017/11/19 18:25:45 If-ModifIEd-Since : [Sun,19 Nov 2017 16:24:53 GMT]2017/11/19 18:25:45 upgrade-insecure-requests : [1]2017/11/19 18:25:45 User-Agent : [Mozilla/5.0 (windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/62.0.3202.94 Safari/537.36]

响应头:

http/1.1 200 OKAccept-Ranges: bytesContent-Length: 2010Content-Type: text/HTML; charset=utf-8Last-ModifIEd: Sun,19 Nov 2017 16:24:53 GMTDate: Sun,19 Nov 2017 18:25:27 GMT

结论:我在另一个虚拟机上运行它,一切正常,所以有一些关于虚拟机的东西,但现在我不知道是什么问题.

解决方法 go run基本上是 builds a binary,copies it to a tmp folder and then executes it(它不止于此,但足以满足我们的目的).

我通过复制您提供的main.go测试了您的示例,然后执行以下 *** 作:

go run main.go# in a new tabcurl localhost:8080#  ==> "Hello world"echo "2" >> public/index.HTMLcurl localhost:8080#  ==> "Hello world\n2"
总结

以上是内存溢出为你收集整理的linux – 从Go提供服务时,静态文件不会更新全部内容,希望文章能够帮你解决linux – 从Go提供服务时,静态文件不会更新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1032288.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存