我目前正在Go工作。我在本地计算机上创建了一个Web服务器。我按照此页面上的说明Rendering CSS in a Go Web Application 但我仍然得到程序似乎无法找到我的css文件所在的404错误。我的目录如下。
在src
文件夹中包含css/somefilename.css
,src
也包含server/server.go
。
我的server.go
文件中的代码如下。
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))
当我转到localhost:8080/css/
时,我找不到404页面。我也使用模板来呈现html代码。模板位于文件夹
src/templates/layout.html
html代码如下:
<link rel="stylesheet" type="text/css" href="../css/css490.css" />
答案 0 :(得分:3)
由于您没有为css
文件夹指定相对路径的完整路径,因此是否找到您的css文件取决于您从运行应用程序的文件夹(工作目录) ,这就是解决相对路径的问题。
例如,如果您使用src
从go run server/server.go
启动应用程序,那么它将起作用。如果您使用src/server
从go run server.go
文件夹启动它,则无效。此外,如果您从应用程序创建本机可执行文件并将其放入bin
文件夹并从bin
文件夹启动,则这也不起作用,因为css
文件夹不是在bin
文件夹中。
从go run server/server.go
文件夹中的src
开始,或将css
文件夹复制到bin
文件夹,然后从bin
文件夹启动可执行文件它应该工作(但在这种情况下,你还必须复制其他静态文件,如html模板)。