Thanks Ian. changing it to
*http.Handle("/static/", http.FileServer(http.FS(fs.Sub(static,"files"))))* did work. On Tuesday, 24 January 2023 at 01:52:40 UTC+5:30 Ian Lance Taylor wrote: > On Mon, Jan 23, 2023 at 11:51 AM Shammi Shailaj <shammi...@gmail.com> > wrote: > > > > There is no function named Sub() for the variable static of type > embed.FS. Hence, the handler: http.Handle("/static/", > http.FileServer(http.FS(static. Sub("files")))) shall not work and throw an > error like: > > > > static.Sub undefined (type embed.FS has no field or method Sub) > > > > Can anyone provide a solution to this? I am looking for the same > > Where it says static.Sub it should probably say fs.Sub(static, "files"). > > Ian > > > > On Tuesday, 6 July 2021 at 01:26:28 UTC+5:30 Sean Liao wrote: > >> > >> `embed` embeds the files with the path you specified, so if you look > into your `static` variable, the files will be available as > `files/static/yourfile`. > >> This means there won't be issues with filename collisions etc... if you > specify multiple patterns > >> > >> If you want to serve your files in your `files/static` directory under > the `/static/` url, your handler should be : `http.Handle("/static/", > http.FileServer(http.FS(static.Sub("files"))))` > >> That is, for everything under the `/static` url, serve from the > embedded filesystem, skipping over the `files/` prefix in the embedded fs. > >> > >> On Monday, July 5, 2021 at 8:30:37 PM UTC+2 Amnon wrote: > >>> > >>> What does > >>> > >>> go list -f '{{ .EmbedFiles }}' > >>> > >>> display? > >>> > >>> On Monday, 5 July 2021 at 06:28:54 UTC+1 tjgur...@gmail.com wrote: > >>>> > >>>> Hi there, > >>>> > >>>> I have been testing the (relatively) new go:embed feature for a few > days and I came across this situation which I wasn't quite sure what was > causing it so I thought asking here would help. > >>>> > >>>> Consider the following code: > >>>> > >>>> ```golang > >>>> package main > >>>> > >>>> import ( > >>>> "embed" > >>>> "fmt" > >>>> "log" > >>>> "net/http" > >>>> ) > >>>> > >>>> //go:embed files/static > >>>> var static embed.FS > >>>> > >>>> func main() { > >>>> http.Handle("/static/", http.StripPrefix("/static/", > http.FileServer(http.FS(static)))) > >>>> log.Fatal(http.ListenAndServe(":8000", nil)) > >>>> } > >>>> > >>>> ``` > >>>> > >>>> Now the files in directory files/static are very much accessible but > the issue I seem to have is that it was accessible under the url > /static/files/static/filename instead of just being accessible through > /static/filename where filename exists inside the directory files/static/ > >>>> > >>>> I tried looking up some examples online and it seems that I have to > use the fs.FS and fs.Sub and only expose (not sure if this is correct > terminology) the new fs.Sub which would mitigate the issue I was having. > >>>> > >>>> My question is about the reason why the Go team went with this > implementation? Because in the above program I wasn't able to access the > files in files/ directory even though there were files in it and was only > able to access files inside the files/static files directory. So there > doesn't seem to be a point in this implementation unless I'm missing > something, and I'm sure its the latter case haha. If anyone knows about why > they went with this implementation, I would be very grateful. > >>>> > >>>> Best wishes > >>>> Taj > >>>> > >>>> > > -- > > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to golang-nuts...@googlegroups.com. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/ce27a16e-b4dc-46b2-8911-4c70f483c20bn%40googlegroups.com > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/18a4807a-f7f8-4a86-903e-81d26d8b0c28n%40googlegroups.com.