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

使用Gorilla工具箱通过根URL提供静态内容

楚承天
2023-03-14
问题内容

我正在尝试使用Gorilla工具包的mux软件包来路由Go
Web服务器中的URL,我有以下Go代码

func main() {
    r := mux.NewRouter()
    r.Handle("/", http.FileServer(http.Dir("./static/")))
    r.HandleFunc("/search/{searchTerm}", Search)
    r.HandleFunc("/load/{dataId}", Load)
    http.Handle("/", r)
    http.ListenAndServe(":8100", nil)
}

目录结构为:

...
main.go
static\
  | index.html
  | js\
     | <js files>
  | css\
     | <css files>

index.html像这样引用Javascript和CSS文件:

...
<link rel="stylesheet" href="css/redmond/jquery-ui.min.css"/>
<script src="js/jquery.min.js"></script>
...

当我http://localhost:8100在Web浏览器中访问index.html内容时,内容已成功交付,但是,所有jscssURL都返回404。

如何获得程序以将文件提供到static子目录之外?


问题答案:

我想您可能正在寻找PathPrefix

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/search/{searchTerm}", Search)
    r.HandleFunc("/load/{dataId}", Load)
    r.PathPrefix("/").Handler(http.FileServer(http.Dir("./static/")))
    http.ListenAndServe(":8100", r)
}


 类似资料:
  • 我正在用< code>Jetty服务器运行一个Spring Boot应用程序。API由< code>Jersey servlet提供服务。静态内容放在< code>src/main/static和< code > src/main/private-static 中。 问题#1未提供中的静态内容 中的内容是公开的,可以自由访问。据此:https://docs.spring.io/spring-boo

  • 问题内容: 我正在为Django使用apache + mod_wsgi。 并且所有css / js / images都通过提供。 出于某种奇怪的原因,当其他人/朋友/同事尝试访问该网站时,jquery / css不会为他们加载,因此页面看上去很混乱。 我的html文件使用这样的代码- 我的nginx配置是这样的 有一个目录,其中有相应的&目录。 奇怪的是,当我访问它们时页面显示正常。 我已经清除了

  • 问题内容: 在Golang中,我如何在根目录之外提供静态内容,同时仍具有用于提供主页的根目录处理程序。 使用以下简单的Web服务器作为示例: 如果我做 我收到一个恐慌,说我有两个针对“ /”的注册。我在互联网上找到的每个Golang示例都建议从不同目录中提供其静态内容,但这对于sitemap.xml,favicon.ico,robots.txt和其他按惯例或始终必须从根本上得到服务。 我要寻找的行

  • 我无法访问静态内容(angular app),甚至无法访问简单的索引。来自spring boot的html文件。我一直收到404错误。Spring没有为我提供这些静态文件。自从升级到Spring Boot 2.2.4后,我就遇到了这个问题。我必须升级以应对Zip64问题。 我的application.properties里有这样一句话: 我也有自己的staticResourceConfigurat

  • 类似于另一个问题(参见过滤静态内容Jersey),我想从Jetty提供静态内容。在浩瀚的互联网上散布着几个类似的问题,但大多数都不涉及Guice,而那些涉及Guice的问题已经完全过时了。 我有一个现有的服务,使用泽西(1.12)和Guice(3)与以下: < code>MyGuiceConfig看起来像这样: 当我使用 时,我的服务按预期工作。但是,任何对静态内容的请求都会产生404。 如何在不

  • 问题内容: 我想在localhost上的gunicorn下运行django项目。我安装并集成了Gunicorn。当我跑步时: 它可以工作,但是没有任何静态文件(css和js) 我在settings.py中禁用了debug和template_debug(将它们设置为false),但是仍然相同。我想念什么吗? 我称静态为: 问题答案: 在开发模式下以及使用其他服务器进行本地开发时,请将其添加到url.