diff options
author | 2024-11-20 15:08:26 +0000 | |
---|---|---|
committer | 2024-11-20 15:08:26 +0000 | |
commit | 28dd3ce5222a667fe113238254edf59318b3fa14 (patch) | |
tree | d9e86a52aa9d67474a024a61feac7e7578ba10b1 | |
parent | ab0580bc94334d7924b5bb0ac808669d9d8930c3 (diff) | |
download | astro-28dd3ce5222a667fe113238254edf59318b3fa14.tar.gz astro-28dd3ce5222a667fe113238254edf59318b3fa14.tar.zst astro-28dd3ce5222a667fe113238254edf59318b3fa14.zip |
fix: server island hydration (#12444)
-rw-r--r-- | .changeset/olive-garlics-marry.md | 5 | ||||
-rw-r--r-- | packages/astro/src/runtime/server/render/server-islands.ts | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/.changeset/olive-garlics-marry.md b/.changeset/olive-garlics-marry.md new file mode 100644 index 000000000..342db3a6f --- /dev/null +++ b/.changeset/olive-garlics-marry.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes an issue where a server island hydration script might fail case the island ID misses from the DOM. diff --git a/packages/astro/src/runtime/server/render/server-islands.ts b/packages/astro/src/runtime/server/render/server-islands.ts index 6dd06b8d7..b8ac34024 100644 --- a/packages/astro/src/runtime/server/render/server-islands.ts +++ b/packages/astro/src/runtime/server/render/server-islands.ts @@ -81,8 +81,8 @@ let response = await fetch('${serverIslandUrl}', { method: 'POST', body: JSON.stringify(data), }); - -if(response.status === 200 && response.headers.get('content-type') === 'text/html') { +if (script) { + if(response.status === 200 && response.headers.get('content-type') === 'text/html') { let html = await response.text(); // Swap! @@ -97,6 +97,7 @@ if(response.status === 200 && response.headers.get('content-type') === 'text/htm script.before(frag); } script.remove(); +} </script>`); }, }; |