“http.FileServer(http.Dir...))”不能在单独的包中工作

drop procedure if exists PESSOA_TESTE;


delimiter $$



create procedure PESSOA_TESTE(IN psaida int)


begin

SET psaida = 2;

select psaida;


end


$$

代码:


   var GerenciaBD GERENCIABD

    var PontoExecucao int


    GerenciaBD.F_GERENCIABD_ABRIR_CONEXAO_MYSQL()


    GerenciaBD.DataBase.QueryRowContext(context.TODO(),"CALL PESSOA_TESTE(?)", PontoExecucao).Scan(&PontoExecucao)


    println(PontoExecucao)


HUWWW
浏览 98回答 2
2回答

慕田峪4524236

请记住,Go 是一种编译语言;程序所做的大部分事情都发生在运行时。特别是,在这种情况下,调用http.Dir()发生在运行时,这意味着路径是在运行时评估的。因为您提供的路径是相对的,所以它是相对于您运行应用程序的工作目录的。源代码所在的目录与此处无关。在一次调用中,http.Dir()您给出了 argument ./web/views,而在另一次调用中,您给出了 argument ./views。事实证明,基于您执行程序的目录的正确路径是./web/views. 当你用错误的路径执行程序时,你会得到404 page not found错误,因为指定的路径在你的工作目录中不存在。

繁星淼淼

您提供的路径http.Dir是相对于应用程序的运行位置(它的工作目录,在您的情况下是您发布的目录树的根目录)而不是相对于文件所在的位置.go。只需更改路径即可./web/views,它应该可以工作。在您的情况下,返回了,因为目录树的顶层404 Not Found没有文件夹,因此没有要提供的文件。views
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go