|
@@ -176,13 +176,6 @@ pub async fn startup_hot_reload(ip: String, port: u16, config: CrateConfig, star
|
|
.clone()
|
|
.clone()
|
|
.unwrap_or_else(|| vec![PathBuf::from("src")]);
|
|
.unwrap_or_else(|| vec![PathBuf::from("src")]);
|
|
|
|
|
|
- let cors = CorsLayer::new()
|
|
|
|
- // allow `GET` and `POST` when accessing the resource
|
|
|
|
- .allow_methods([Method::GET, Method::POST])
|
|
|
|
- // allow requests from any origin
|
|
|
|
- .allow_origin(Any)
|
|
|
|
- .allow_headers(Any);
|
|
|
|
-
|
|
|
|
let watcher_config = config.clone();
|
|
let watcher_config = config.clone();
|
|
let watcher_ip = ip.clone();
|
|
let watcher_ip = ip.clone();
|
|
let mut last_update_time = chrono::Local::now().timestamp();
|
|
let mut last_update_time = chrono::Local::now().timestamp();
|
|
@@ -278,15 +271,34 @@ pub async fn startup_hot_reload(ip: String, port: u16, config: CrateConfig, star
|
|
},
|
|
},
|
|
);
|
|
);
|
|
|
|
|
|
|
|
+ let cors = CorsLayer::new()
|
|
|
|
+ // allow `GET` and `POST` when accessing the resource
|
|
|
|
+ .allow_methods([Method::GET, Method::POST])
|
|
|
|
+ // allow requests from any origin
|
|
|
|
+ .allow_origin(Any)
|
|
|
|
+ .allow_headers(Any);
|
|
|
|
+
|
|
|
|
+ let (coep, coop) = if config.cross_origin_policy {
|
|
|
|
+ (
|
|
|
|
+ HeaderValue::from_static("require-corp"),
|
|
|
|
+ HeaderValue::from_static("same-origin"),
|
|
|
|
+ )
|
|
|
|
+ } else {
|
|
|
|
+ (
|
|
|
|
+ HeaderValue::from_static("unsafe-none"),
|
|
|
|
+ HeaderValue::from_static("unsafe-none"),
|
|
|
|
+ )
|
|
|
|
+ };
|
|
|
|
+
|
|
let file_service_config = config.clone();
|
|
let file_service_config = config.clone();
|
|
let file_service = ServiceBuilder::new()
|
|
let file_service = ServiceBuilder::new()
|
|
.override_response_header(
|
|
.override_response_header(
|
|
HeaderName::from_static("cross-origin-embedder-policy"),
|
|
HeaderName::from_static("cross-origin-embedder-policy"),
|
|
- HeaderValue::from_static("require-corp"),
|
|
|
|
|
|
+ coep,
|
|
)
|
|
)
|
|
.override_response_header(
|
|
.override_response_header(
|
|
HeaderName::from_static("cross-origin-opener-policy"),
|
|
HeaderName::from_static("cross-origin-opener-policy"),
|
|
- HeaderValue::from_static("same-origin"),
|
|
|
|
|
|
+ coop,
|
|
)
|
|
)
|
|
.and_then(
|
|
.and_then(
|
|
move |response: Response<ServeFileSystemResponseBody>| async move {
|
|
move |response: Response<ServeFileSystemResponseBody>| async move {
|
|
@@ -380,13 +392,6 @@ pub async fn startup_default(
|
|
|
|
|
|
let mut last_update_time = chrono::Local::now().timestamp();
|
|
let mut last_update_time = chrono::Local::now().timestamp();
|
|
|
|
|
|
- let cors = CorsLayer::new()
|
|
|
|
- // allow `GET` and `POST` when accessing the resource
|
|
|
|
- .allow_methods([Method::GET, Method::POST])
|
|
|
|
- // allow requests from any origin
|
|
|
|
- .allow_origin(Any)
|
|
|
|
- .allow_headers(Any);
|
|
|
|
-
|
|
|
|
// file watcher: check file change
|
|
// file watcher: check file change
|
|
let allow_watch_path = config
|
|
let allow_watch_path = config
|
|
.dioxus_config
|
|
.dioxus_config
|
|
@@ -450,15 +455,34 @@ pub async fn startup_default(
|
|
|
|
|
|
PluginManager::on_serve_start(&config)?;
|
|
PluginManager::on_serve_start(&config)?;
|
|
|
|
|
|
|
|
+ let cors = CorsLayer::new()
|
|
|
|
+ // allow `GET` and `POST` when accessing the resource
|
|
|
|
+ .allow_methods([Method::GET, Method::POST])
|
|
|
|
+ // allow requests from any origin
|
|
|
|
+ .allow_origin(Any)
|
|
|
|
+ .allow_headers(Any);
|
|
|
|
+
|
|
|
|
+ let (coep, coop) = if config.cross_origin_policy {
|
|
|
|
+ (
|
|
|
|
+ HeaderValue::from_static("require-corp"),
|
|
|
|
+ HeaderValue::from_static("same-origin"),
|
|
|
|
+ )
|
|
|
|
+ } else {
|
|
|
|
+ (
|
|
|
|
+ HeaderValue::from_static("unsafe-none"),
|
|
|
|
+ HeaderValue::from_static("unsafe-none"),
|
|
|
|
+ )
|
|
|
|
+ };
|
|
|
|
+
|
|
let file_service_config = config.clone();
|
|
let file_service_config = config.clone();
|
|
let file_service = ServiceBuilder::new()
|
|
let file_service = ServiceBuilder::new()
|
|
.override_response_header(
|
|
.override_response_header(
|
|
HeaderName::from_static("cross-origin-embedder-policy"),
|
|
HeaderName::from_static("cross-origin-embedder-policy"),
|
|
- HeaderValue::from_static("require-corp"),
|
|
|
|
|
|
+ coep,
|
|
)
|
|
)
|
|
.override_response_header(
|
|
.override_response_header(
|
|
HeaderName::from_static("cross-origin-opener-policy"),
|
|
HeaderName::from_static("cross-origin-opener-policy"),
|
|
- HeaderValue::from_static("same-origin"),
|
|
|
|
|
|
+ coop,
|
|
)
|
|
)
|
|
.and_then(
|
|
.and_then(
|
|
move |response: Response<ServeFileSystemResponseBody>| async move {
|
|
move |response: Response<ServeFileSystemResponseBody>| async move {
|