mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 16:02:28 +08:00
44 lines
834 B
Go
44 lines
834 B
Go
// +build desktop
|
|
|
|
package assetserver
|
|
|
|
import (
|
|
"embed"
|
|
"github.com/wailsapp/wails/v2/internal/frontend/runtime"
|
|
"net/http"
|
|
)
|
|
|
|
func (a *AssetServer) init(assets embed.FS) error {
|
|
|
|
var err error
|
|
a.assets, err = processAssets(assets)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
indexHTML, err := a.assets.ReadFile("index.html")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
a.indexFile, err = injectScript(string(indexHTML), "<script>"+runtime.RuntimeJS+"</script>")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (a *AssetServer) Load(filename string) ([]byte, string, error) {
|
|
var content []byte
|
|
var err error
|
|
switch filename {
|
|
case "/":
|
|
content = a.indexFile
|
|
default:
|
|
content, err = a.assets.ReadFile(filename)
|
|
}
|
|
if err != nil {
|
|
return nil, "", err
|
|
}
|
|
mimeType := http.DetectContentType(content)
|
|
return content, mimeType, nil
|
|
}
|