diff --git a/.gitignore b/.gitignore index 9f61ad64e..f7156b125 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.dioxus /target /packages/playwright-tests/web/dist /packages/playwright-tests/fullstack/dist diff --git a/packages/ssr/src/cache.rs b/packages/ssr/src/cache.rs index c2962d11b..dd2d316aa 100644 --- a/packages/ssr/src/cache.rs +++ b/packages/ssr/src/cache.rs @@ -156,11 +156,20 @@ impl StringCache { cur_path.pop(); } TemplateNode::Text { text } => { + // write the id if we are prerendering and this is a root node that may need to be removed in the future + if prerender && is_root { + write!(chain, "")?; + } write!( chain, "{}", askama_escape::escape(text, askama_escape::Html) )?; + if prerender && is_root { + write!(chain, "")?; + } } TemplateNode::Dynamic { id: idx } | TemplateNode::DynamicText { id: idx } => { chain.segments.push(Segment::Node(*idx)) diff --git a/packages/web/src/rehydrate.rs b/packages/web/src/rehydrate.rs index 9e16ff77c..5c425de79 100644 --- a/packages/web/src/rehydrate.rs +++ b/packages/web/src/rehydrate.rs @@ -113,7 +113,11 @@ impl WebsysDom { ids, to_mount, )?, - _ => {} + TemplateNode::Text { .. } => { + if let Some(id) = root_id { + ids.push(id.0 as u32); + } + } } Ok(()) }