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

第三方路由器和静态文件

黄聪
2023-03-14
问题内容

我在Google App
Engine上使用了第三方路由器(httprouter),并且希望从根目录提供静态文件。

由于使用了App Engine,我需要将第三方路由器附加到DefaultServeMuxon /

router := httprouter.New()

// Doesn't work, duplicated "/".
http.Handle("/", http.FileServer(http.Dir("public")))

// Needed because of App Engine.
http.Handle("/", router)

问题是,这会重复/模式和出现“ /多个注册 ”的紧急情况

如何提供文件( 尤其是index.html从根目录访问文件)并使用第三方路由器?


问题答案:

如果您在提供静态文件,/则无法按照https://github.com/julienschmidt/httprouter/issues/7#issuecomment-45725482提供其他路径

您不能在用于服务文件的根目录中注册“全部捕获”,而还要在子路径中注册其他处理程序。另请参见https://github.com/julienschmidt/httprouter#named-
parameters中
的注释

您应该使用Go在应用程序根目录下提供模板,并在子路径下提供静态文件(CSS,JS等):

router := httprouter.New()

router.GET("/", IndexHandler)
// Ripped straight from the httprouter docs
router.ServeFiles("/static/*filepath", http.Dir("/srv/www/public/"))

http.Handle("/", router)


 类似资料:
  • 本文向大家介绍静态路由和动态路由之间的区别,包括了静态路由和动态路由之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态路由 遵循用户定义的路由的静态路由或非自适应路由,并且直到网络管理员更改路由表后,路由表才会更改。静态路由使用简单的路由算法,并且比动态路由提供更高的安全性。 动态路由 顾名思义,动态路由或自适应路由会在网络发生任何更改或网络拓扑发生更改时更改路由表。在网络更改期间,动态路由

  • 我目前正在用spring cloud gateway替换网飞Zuul的api gateway。该设置对大多数路线使用发现客户端(eureka ),但是我们还有一个solr实例正在运行,它需要手动定义路线(因为solr不支持Eureka) 使用以下配置,使用到在本地主机上运行的solr的静态路由可以很好地工作: 但是,我想为这条路由使用负载平衡的uri,因为我们有多个solr实例。查看留档,我发现实

  • 问题内容: 我想像通常那样处理静态文件,但像通常那样处理动态路由 其中一位开发人员在此评论中提出了解决方案,但我不清楚他的意思。 问题答案: 好的。我在Express的response object 的源代码中找到了一个示例。这是该示例的稍作修改的版本。 它使用该方法。 注意 :安全性更改要求使用此选项。

  • 本文向大家介绍Linux 添加永久静态路由的方法,包括了Linux 添加永久静态路由的方法的使用技巧和注意事项,需要的朋友参考一下 1/5 首先让我们查看一下当前机器的路由表,执行如下命令:route -n 2/5 然后我们确认一下当前工作的网卡,这里我们使用的是eth1。 补充:如果机器中存在多块网卡,我们可以为不同网卡指定不同的静态路由。 比如还有eth0,eht2;那么方法是一样的,我们依次

  • 问题内容: 我想定义一个包含三个变量组件的url规则,例如: 但是我发现开发服务器在尝试匹配静态文件之前会评估这些规则。所以像这样: 会被我的url规则捕获,而不是转发给内置的静态文件处理程序。有没有一种方法可以强制开发服务器首先匹配静态文件? PS仅当规则具有两个以上可变组成部分时,这才是问题。 问题答案: 这是werkzeug路线优化功能。见,并且: 有-当前参数-路径深度。 因为我们有。有-

  • 8.1. 概述 路由器主要负责解析一个请求并且决定什么module、controller、action被请求;它同时也定义了一种方法来实现用户自定义路由,这也使得它成为最重要的一个MVC组组件. 为了方便自定义路由, Yaf摒弃了0.1版本中的自定义路由器方式, 而采用了更为灵活的路由器和路由协议分离的模式. 也就是一个固定不变的路由器, 配合各种可自定义的路由协议, 来实现灵活多变的路由策略.