[js][golang]layer-v3.1.1 在 http.FileServer(http.Dir("")) 下无法弹出的原因及解决
layerui 是写得非常好的 js 库,但一日想放到 golang 的 http 服务器下时发现居然无法成功弹出层!
查看了浏览器的访问记录发现文件都正确得到了啊!在 firefox 控制台下显示 "layer.css: Invalid",换用 chrome 得到更详细的错误报告为
"
Resource interpreted as Stylesheet but transferred with MIME type text/plain: "http://127.0.0.1:8888/html/layer/theme/default/layer.css?v=3.1.1".
"
搜索了一下,据说是 contentType 在处理 js 文件类型时的错误导致其中代码没有执行。
(https://blog.csdn.net/rufidmx/article/details/27518015)
(https://blog.csdn.net/m0_37904728/article/details/78745243)
然后又参考 https://segmentfault.com/q/1010000000150166/
加了以下代码
mime.AddExtensionType(".js", "text/javascript");
居然还是不行!不过错误提示变了,那说明修改手段是有效果的,于是再加 css 的,果然成功了!
最后的代码片段如下
//http.Handle("/html/", http.StripPrefix("/html/", http.FileServer(http.Dir("html")))); //只有这样才能正确的访问 http://127.0.0.1:8888/html/mail_vip.html
//第二个参数其实是根目录,这里指的是程序在在目录即为网站的根目录
mime.AddExtensionType(".apk", "application/vnd.android");
mime.AddExtensionType(".js", "text/javascript");
mime.AddExtensionType(".css", "text/css");
http.Handle("/html/", http.FileServer(http.Dir(""))); //只有这样才能正确的访问 http://127.0.0.1:8888/html/mail_vip.html