我正在使用 gomobile 将 Golang 代码转换为 Android。当前的 Golang 代码支持桌面的 webvew 服务。我也需要为 webview 平板电脑提供相同的服务(在平板电脑上使用 chrome 浏览器)。
在 golang 的根目录中,我有以下目录:
TopProj/
ui/
public/
index.html
我想确保通过访问 locahost:<port_number> 浏览器将用户重定向到 index.html 页面。
这是我在 go lang 中使用的 http 处理程序部分代码
staticFiles := http.FileServer(http.Dir("/"))
http.Handle("/", staticFiles)
http.ListenAndServe(":9090", handlers.LoggingHandler(os.Stdout, http.DefaultServeMux))
但是当我在平板电脑的 chrome 浏览器中尝试“localhost:9090/”时,它会将我重定向到平板电脑的根目录。
是否有任何建议通过在平板电脑上的 chrome 中浏览“localhost:9090”来重定向到 index.html 页面?
我的方法:
我认为一种解决方法是将 ui 目录的内容移动到平板电脑根目录之一,例如“/sdcard/DCIM”。我做了一个如下的小例子,看起来很有效。
TABLET_ROOT_DIR/
sdcard/
DCSIM/
index.html
并更新golang代码如下:
staticFiles := http.StripPrefix("/", http.FileServer(http.Dir("/sdcard/DCIM")))
http.Handle("/", staticFiles)
http.ListenAndServe(":9090", handlers.LoggingHandler(os.Stdout, http.DefaultServeMux))
但是使用这种方法,每次我们对 ui 目录进行任何更改时,我们都应该更新平板电脑上的文件。
另一个解决方法是将 ui 目录移动到 assets 目录,如本线程中所述。但是,不确定如何通过这种方法使用“http.FileServer”,或者是否有更好的替代“http.FileServer”。
我感谢任何建议或评论。