apply headers to axum adapter
This commit is contained in:
1 parent
040055ba9d
commit
e7c3047aa1
2 files changed
+9
-7
No files matched your search
@@ -350,12 +350,12 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn apply_request_parts_to_response<B>(
|
fn apply_request_parts_to_response<B>(
|
||||||
parts: &RequestParts,
|
headers: hyper::header::HeaderMap,
|
||||||
response: &mut axum::response::Response<B>,
|
response: &mut axum::response::Response<B>,
|
||||||
) {
|
) {
|
||||||
let headers = response.headers_mut();
|
let mut_headers = response.headers_mut();
|
||||||
for (key, value) in parts.headers.iter() {
|
for (key, value) in headers.iter() {
|
||||||
headers.insert(key, value.clone());
|
mut_headers.insert(key, value.clone());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,11 +366,11 @@ async fn render_handler<P: Clone + serde::Serialize + Send + Sync + 'static>(
|
|||||||
let (parts, _) = request.into_parts();
|
let (parts, _) = request.into_parts();
|
||||||
let parts: Arc<RequestParts> = Arc::new(parts.into());
|
let parts: Arc<RequestParts> = Arc::new(parts.into());
|
||||||
let url = parts.uri.path_and_query().unwrap().to_string();
|
let url = parts.uri.path_and_query().unwrap().to_string();
|
||||||
let server_context = DioxusServerContext::new(parts.clone());
|
let server_context = DioxusServerContext::new(dbg!(parts.clone()));
|
||||||
|
|
||||||
match ssr_state
|
match ssr_state
|
||||||
.render(url, &cfg, |vdom| {
|
.render(url, &cfg, |vdom| {
|
||||||
vdom.base_scope().provide_context(server_context);
|
vdom.base_scope().provide_context(server_context.clone());
|
||||||
})
|
})
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
@@ -378,7 +378,8 @@ async fn render_handler<P: Clone + serde::Serialize + Send + Sync + 'static>(
|
|||||||
let crate::render::RenderResponse { html, freshness } = rendered;
|
let crate::render::RenderResponse { html, freshness } = rendered;
|
||||||
let mut response = axum::response::Html::from(html).into_response();
|
let mut response = axum::response::Html::from(html).into_response();
|
||||||
freshness.write(response.headers_mut());
|
freshness.write(response.headers_mut());
|
||||||
apply_request_parts_to_response(&parts, &mut response);
|
let headers = server_context.take_response_headers();
|
||||||
|
apply_request_parts_to_response(headers, &mut response);
|
||||||
response
|
response
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ impl SsrRendererPool {
|
|||||||
to: &mut String,
|
to: &mut String,
|
||||||
modify_vdom: impl FnOnce(&mut VirtualDom),
|
modify_vdom: impl FnOnce(&mut VirtualDom),
|
||||||
) -> Result<RenderFreshness, dioxus_ssr::incremental::IncrementalRendererError> {
|
) -> Result<RenderFreshness, dioxus_ssr::incremental::IncrementalRendererError> {
|
||||||
|
println!("{:?}", route);
|
||||||
let wrapper = FullstackRenderer { cfg };
|
let wrapper = FullstackRenderer { cfg };
|
||||||
match self {
|
match self {
|
||||||
Self::Renderer(pool) => {
|
Self::Renderer(pool) => {
|
||||||
|
|||||||
Reference in new issue
Block a user