Update server.js
Browse files
server.js
CHANGED
|
@@ -4,22 +4,24 @@ const path = require("path");
|
|
| 4 |
const app = express();
|
| 5 |
const PORT = process.env.PORT || 7860;
|
| 6 |
|
| 7 |
-
//
|
| 8 |
app.use((req, res, next) => {
|
| 9 |
res.setHeader("Cross-Origin-Opener-Policy", "same-origin");
|
| 10 |
res.setHeader("Cross-Origin-Embedder-Policy", "require-corp");
|
| 11 |
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
|
|
| 12 |
next();
|
| 13 |
});
|
| 14 |
|
| 15 |
-
// 静态
|
| 16 |
-
app.use(express.static(path.join(__dirname, "uv")));
|
| 17 |
|
| 18 |
-
// SPA fallback(
|
| 19 |
app.get("*", (req, res) => {
|
| 20 |
res.sendFile(path.join(__dirname, "uv", "index.html"));
|
| 21 |
});
|
| 22 |
|
|
|
|
| 23 |
app.listen(PORT, "0.0.0.0", () => {
|
| 24 |
-
console.log(
|
| 25 |
});
|
|
|
|
| 4 |
const app = express();
|
| 5 |
const PORT = process.env.PORT || 7860;
|
| 6 |
|
| 7 |
+
// ===== 1. 必须头(UV + HF + mobile)=====
|
| 8 |
app.use((req, res, next) => {
|
| 9 |
res.setHeader("Cross-Origin-Opener-Policy", "same-origin");
|
| 10 |
res.setHeader("Cross-Origin-Embedder-Policy", "require-corp");
|
| 11 |
res.setHeader("Access-Control-Allow-Origin", "*");
|
| 12 |
+
res.setHeader("Cross-Origin-Resource-Policy", "cross-origin");
|
| 13 |
next();
|
| 14 |
});
|
| 15 |
|
| 16 |
+
// ===== 2. 强制静态资源 =====
|
| 17 |
+
app.use("/uv", express.static(path.join(__dirname, "uv")));
|
| 18 |
|
| 19 |
+
// ===== 3. HF + SPA fallback(关键)=====
|
| 20 |
app.get("*", (req, res) => {
|
| 21 |
res.sendFile(path.join(__dirname, "uv", "index.html"));
|
| 22 |
});
|
| 23 |
|
| 24 |
+
// ===== 4. bind 0.0.0.0(HF 必须)=====
|
| 25 |
app.listen(PORT, "0.0.0.0", () => {
|
| 26 |
+
console.log(`Ultraviolet running on ${PORT}`);
|
| 27 |
});
|