static.go 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package wrapper
  2. import (
  3. "net/http"
  4. "os"
  5. Images "golang-fave/engine/wrapper/resources/images"
  6. Others "golang-fave/engine/wrapper/resources/others"
  7. Scripts "golang-fave/engine/wrapper/resources/scripts"
  8. Styles "golang-fave/engine/wrapper/resources/styles"
  9. Templates "golang-fave/engine/wrapper/resources/templates"
  10. )
  11. func (e *Wrapper) staticResource() bool {
  12. if e.R.URL.Path == "/assets/sys/styles.css" {
  13. (*e.W).Header().Set("Content-Type", "text/css")
  14. (*e.W).Write(Styles.File_assets_sys_styles_css)
  15. return true
  16. } else if e.R.URL.Path == "/assets/sys/bootstrap.css" {
  17. (*e.W).Header().Set("Content-Type", "text/css")
  18. (*e.W).Write(Styles.File_assets_sys_bootstrap_css)
  19. return true
  20. } else if e.R.URL.Path == "/assets/sys/jquery.js" {
  21. (*e.W).Header().Set("Content-Type", "application/javascript; charset=utf-8")
  22. (*e.W).Write(Scripts.File_assets_sys_jquery_js)
  23. return true
  24. } else if e.R.URL.Path == "/assets/sys/popper.js" {
  25. (*e.W).Header().Set("Content-Type", "application/javascript; charset=utf-8")
  26. (*e.W).Write(Scripts.File_assets_sys_popper_js)
  27. return true
  28. } else if e.R.URL.Path == "/assets/sys/logo.svg" {
  29. (*e.W).Header().Set("Content-Type", "image/svg+xml")
  30. (*e.W).Write(Others.File_assets_sys_logo_svg)
  31. return true
  32. } else if e.R.URL.Path == "/assets/sys/bg.png" {
  33. (*e.W).Header().Set("Content-Type", "image/png")
  34. (*e.W).Write(Images.File_assets_sys_bg_png)
  35. return true
  36. } else if e.R.URL.Path == "/assets/sys/logo.png" {
  37. (*e.W).Header().Set("Content-Type", "image/png")
  38. (*e.W).Write(Images.File_assets_sys_logo_png)
  39. return true
  40. } else if e.R.URL.Path == "/assets/sys/fave.ico" {
  41. (*e.W).Header().Set("Content-Type", "image/x-icon")
  42. (*e.W).Write(Others.File_assets_sys_fave_ico)
  43. return true
  44. }
  45. return false
  46. }
  47. func (e *Wrapper) staticFile() bool {
  48. file := e.R.URL.Path
  49. if file == "/" {
  50. f, err := os.Open(e.DirVhostHome + "/htdocs" + "/index.htm")
  51. if err == nil {
  52. defer f.Close()
  53. http.ServeFile(*e.W, e.R, e.DirVhostHome+"/htdocs"+"/index.htm")
  54. return true
  55. } else {
  56. f, err = os.Open(e.DirVhostHome + "/htdocs" + "/index.html")
  57. if err == nil {
  58. defer f.Close()
  59. http.ServeFile(*e.W, e.R, e.DirVhostHome+"/htdocs"+"/index.html")
  60. return true
  61. }
  62. }
  63. } else {
  64. f, err := os.Open(e.DirVhostHome + "/htdocs" + file)
  65. if err == nil {
  66. defer f.Close()
  67. st, err := os.Stat(e.DirVhostHome + "/htdocs" + file)
  68. if err != nil {
  69. return false
  70. }
  71. if st.Mode().IsDir() {
  72. return false
  73. }
  74. http.ServeFile(*e.W, e.R, e.DirVhostHome+"/htdocs"+file)
  75. return true
  76. }
  77. }
  78. return false
  79. }
  80. func (e *Wrapper) printPageDefault() {
  81. (*e.W).Header().Set("Content-Type", "text/html")
  82. (*e.W).Write(Templates.PageDefault)
  83. }
  84. func (e *Wrapper) printPage404() {
  85. (*e.W).WriteHeader(http.StatusNotFound)
  86. (*e.W).Header().Set("Content-Type", "text/html")
  87. (*e.W).Write(Templates.PageError404)
  88. }