栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从简单的HTTP服务器中的每个文件中删除.html扩展名

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从简单的HTTP服务器中的每个文件中删除.html扩展名

一种选择是实现http.FileSystem使用http.Dir。这种方法的优点是它利用了http.FileServer中精心编写的代码。

它看起来像这样:

type HTMLDir struct {    d http.Dir}func main() {  fs := http.FileServer(HTMLDir{http.Dir("public/")})  http.Handle("/", http.StripPrefix("/", fs))  http.ListenAndServe(":8000", nil)}

Open方法的实现取决于应用程序需求。

如果您始终想使用.html扩展名,请使用以下代码:

func (d HTMLDir) Open(name string) (http.File, error) {    return d.d.Open(name + ".html")}

如果要回退到.html扩展名,请使用以下代码:

func (d HTMLDir) Open(name string) (http.File, error) {    // Try name as supplied    f, err := d.d.Open(name)    if os.IsNotExist(err) {        // Not found, try with .html        if f, err := d.d.Open(name + ".html"); err == nil { return f, nil        }    }    return f, err}

翻转前一个以.html扩展名开头,然后回退到提供的名称:

func (d HTMLDir) Open(name string) (http.File, error) {    // Try name with added extension    f, err := d.d.Open(name + ".html")    if os.IsNotExist(err) {        // Not found, try again with name as supplied.        if f, err := d.d.Open(name); err == nil { return f, nil        }    }    return f, err}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409615.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号