我目前在Go中工作。我在本地计算机上创建了一个Web服务器。我按照此页面上的说明在Go Web应用程序中渲染CSS,但仍然出现404错误,程序似乎无法找到我的css文件在哪里。我的目录如下。
在src文件夹contains中css/somefilename.css,src还包含server/server.go。
src
css/somefilename.css
server/server.go
我server.go文件中的代码如下。
server.go
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))
当我转到localhost:8080/css/404页面时,找不到页面。我还使用模板来呈现html代码。模板在文件夹中
localhost:8080/css/
src/templates/layout.html
html代码如下:
<link rel="stylesheet" type="text/css" href="../css/css490.css" />
由于您没有为css文件夹指定完整路径,而只是为它指定了相对路径,因此是否找到css文件取决于 您从中运行应用程序 的 文件夹 (工作目录,这是相对路径的解析路径)。
css
例如,如果您从启动应用程序src与go runserver/server.go它的工作。如果您使用来从src/server文件夹中启动它go run server.go,则它将不起作用。同样,如果您从放入bin文件夹的应用程序创建一个本机可执行文件,然后从该bin文件夹启动该可执行文件,这也将不起作用,因为该css文件夹不在bin文件夹中。
go runserver/server.go
src/server
go run server.go
bin
go run server/server.go从src文件夹中启动它,或者将css文件夹复制到您的bin文件夹中,然后从文件夹中启动可执行bin文件,它应该可以工作(但是在这种情况下,您还必须复制其他静态文件,例如html模板)。
go run server/server.go