diff --git a/v2/internal/frontend/assetserver/assetserver_desktop.go b/v2/internal/frontend/assetserver/assetserver_desktop.go index ed49b103b..c7d5fc7f2 100644 --- a/v2/internal/frontend/assetserver/assetserver_desktop.go +++ b/v2/internal/frontend/assetserver/assetserver_desktop.go @@ -17,13 +17,16 @@ import ( var defaultHTML []byte type DesktopAssetServer struct { - assets fs.FS - runtimeJS []byte - logger *logger.Logger + assets fs.FS + runtimeJS []byte + logger *logger.Logger + servingFromDisk bool } -func NewDesktopAssetServer(ctx context.Context, assets fs.FS, bindingsJSON string) (*DesktopAssetServer, error) { - result := &DesktopAssetServer{} +func NewDesktopAssetServer(ctx context.Context, assets fs.FS, bindingsJSON string, servingFromDisk bool) (*DesktopAssetServer, error) { + result := &DesktopAssetServer{ + servingFromDisk: servingFromDisk, + } _logger := ctx.Value("logger") if _logger != nil { @@ -53,6 +56,9 @@ func (d *DesktopAssetServer) LogDebug(message string, args ...interface{}) { // loadFile will try to load the file from disk. If there is an error // it will retry until eventually it will give up and error. func (d *DesktopAssetServer) loadFile(filename string) ([]byte, error) { + if !d.servingFromDisk { + return fs.ReadFile(d.assets, filename) + } var result []byte var err error for tries := 0; tries < 50; tries++ { diff --git a/v2/internal/frontend/desktop/darwin/frontend.go b/v2/internal/frontend/desktop/darwin/frontend.go index cd5adb94b..26f2a888a 100644 --- a/v2/internal/frontend/desktop/darwin/frontend.go +++ b/v2/internal/frontend/desktop/darwin/frontend.go @@ -80,7 +80,7 @@ func NewFrontend(ctx context.Context, appoptions *options.App, myLogger *logger. if err != nil { log.Fatal(err) } - assets, err := assetserver.NewDesktopAssetServer(ctx, appoptions.Assets, bindingsJSON) + assets, err := assetserver.NewDesktopAssetServer(ctx, appoptions.Assets, bindingsJSON, result.servingFromDisk) if err != nil { log.Fatal(err) } diff --git a/v2/internal/frontend/desktop/linux/frontend.go b/v2/internal/frontend/desktop/linux/frontend.go index 09b07d757..fba8d2c4d 100644 --- a/v2/internal/frontend/desktop/linux/frontend.go +++ b/v2/internal/frontend/desktop/linux/frontend.go @@ -87,7 +87,7 @@ func NewFrontend(ctx context.Context, appoptions *options.App, myLogger *logger. result.servingFromDisk = true } - assets, err := assetserver.NewDesktopAssetServer(ctx, appoptions.Assets, bindingsJSON) + assets, err := assetserver.NewDesktopAssetServer(ctx, appoptions.Assets, bindingsJSON, result.servingFromDisk) if err != nil { log.Fatal(err) } diff --git a/v2/internal/frontend/desktop/windows/frontend.go b/v2/internal/frontend/desktop/windows/frontend.go index 2eb152002..a25b8c898 100644 --- a/v2/internal/frontend/desktop/windows/frontend.go +++ b/v2/internal/frontend/desktop/windows/frontend.go @@ -82,7 +82,7 @@ func NewFrontend(ctx context.Context, appoptions *options.App, myLogger *logger. result.servingFromDisk = true } - assets, err := assetserver.NewDesktopAssetServer(ctx, appoptions.Assets, bindingsJSON) + assets, err := assetserver.NewDesktopAssetServer(ctx, appoptions.Assets, bindingsJSON, result.servingFromDisk) if err != nil { log.Fatal(err) }