当前位置: 首页 > 面试题库 >

如何在Go中投放CSS和JS

戚弘和
2023-03-14
问题内容

我遵循了Go Writing Web
Applications
教程,但是无论出于什么原因,我都很难使该应用程序能够服务CSS和JS。如果我在没有Go服务器的情况下运行静态页面,则页面CSS可以正常工作。另一方面,当我运行Go服务器时,CSS无效。

这是我的HTML外观:

<link rel="stylesheet" href="../assets/css/bootstrap.min.css">
<link rel="stylesheet" href="../assets/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="../assets/css/custom.css">

然后在body标记下:

<script src="../assets/js/jquery.min.js"></script>
<script src="../assets/js/bootstrap.min.js"></script>

我的文件树如下所示:

go-affect/
├── data
│   └── …
├── static
│   ├── css
│   │   └── …
│   └── js
│   │   └── …
├── tmpl
│   ├── edit.html
│   ├── index.html
│   └── view.html
└── main.go

如何获得Go应用程序以提供所需的CSS和JavaScript?

此问题已经解决,这里是主要的工作方式:

func main() {
    http.HandleFunc("/view/", makeHandler(viewHandler))
    http.HandleFunc("/edit/", makeHandler(editHandler))
    http.HandleFunc("/save/", makeHandler(saveHandler))
    http.HandleFunc("/index/", makeHandler(indexHandler))


    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))

    http.ListenAndServe(":8080", nil)
}

这是我使用的处理程序的示例

func indexHandler(w http.ResponseWriter, r *http.Request, title string) {
    p := &Page{Title: title}
    err := templates.ExecuteTemplate(w, "index.html", p)
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
    }
}

问题答案:
http.Handle("/", http.FileServer(http.Dir("css/")))

将在提供您的css目录/。当然,您可以在任意路径下为任何目录提供服务。

您可能要确保静态路径不会妨碍其他路径,并使用类似的方法。

http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))

js和都放置在项目css的目录static中。那么这将在为他们提供服务domain.com/static/css/filename.cssdomain.com/static/js/filename.js

StripPrefix方法删除了前缀,因此它不会尝试在当然找不到的static目录中进行搜索static/css/filename.css。它将css/filename.cssstatic目录中查找,这是正确的。



 类似资料:
  • 问题内容: 我目前正在尝试在mongodb内部的文档数组中提取单个对象。这是一个样本数据集: 我可以在mongo中使用以下命令成功查询: 我无法使用mgo进行相同操作,并尝试了以下操作: 使用嵌套(抛出:合成文字中缺少类型,地图文字中缺少键) 我正在使用httprouter,p.ByName(“ …”)调用是传递给处理程序的参数。 提前致谢。 问题答案: 将与该 方法一起使用,因为doc指出,这使

  • 问题内容: 我建立了一个用于HTTP2的连接,我该怎么做才能释放客户端和使用的资源? 问题答案: 不需要任何特殊方法来释放“已用”资源。当它变得不可访问时,垃圾收集器将回收它使用的内存。 不存储连接或状态信息。该文档甚至指出应重用: 客户端的传输通常具有内部状态(缓存的TCP连接),因此应重新使用客户端,而不是根据需要创建客户端。客户端可以安全地被多个goroutine并发使用。 如果使用(例如,

  • 问题内容: 我想将所有图像都放在CSS中(我知道的唯一方法是将它们作为背景图像放置)。 但是此解决方案中的问题是您永远不能让div占用图像的大小。 所以我的问题是:在CSS中拥有等效功能的最佳方法是什么 ? 问题答案: Jaap的回答: 和在CSS中: 这已经在Chrome,firefox和Safari上进行了测试。(我在Mac上,所以如果有人在IE上有结果,请告诉我添加它)

  • 1. 简介 投放百度可将用户分群中的各项重定向人群圈选后实时推送至信息流推广、搜索推广等百度推广投放端,在投放端您可以选择对应分群包为用户直接投放量身定制的广告,助力精准营销。 2. 使用说明 首先需要接受服务协议,点击同意后进入投放百度报告页; 点击新建定向任务进行推送分群包任务的新建: 首先输入任务名称,规则为10个字符内,仅包含数字、英文、中文的输入; 选择用户分群,包含基础圈选分群、精算分

  • 1. 简介 投放百度可将用户分群中的各项重定向人群圈选后实时推送至信息流推广、搜索推广等百度推广投放端,在投放端您可以选择对应分群包为用户直接投放量身定制的广告,助力精准营销。 2. 使用说明 首先需要接受服务协议,点击同意后进入投放百度报告页; 点击新建定向任务进行推送分群包任务的新建: 首先输入任务名称,规则为10个字符内,仅包含数字、英文、中文的输入; 选择用户分群,包含基础圈选分群、精算分

  • 市场人员可以将会议活动的报名链接、二维码或者邀请海报投放到媒体广告或官网进行会议活动的宣传造势; 1. 获取会议对应渠道的二维码或链接 2. 获取报名表单的二维码与链接 在会议主页与报名表单处,选择渠道并在此可获得对应渠道的报名表单的二维码、链接与官网的嵌入代码;