初始化hugo
This commit is contained in:
1 parent
3560921bf7
commit
2c46cd35e7
81 files changed
+29189
No files matched your search
@@ -0,0 +1,70 @@
|
||||
// 导入 Deno Deploy 所需的模块
|
||||
import {
|
||||
serve,
|
||||
ServerRequest,
|
||||
Response,
|
||||
createHtmlResponse,
|
||||
createResponse,
|
||||
} from "https://deno.land/x/deploy@v1.10.0/mod.ts";
|
||||
import { exists } from "https://deno.land/std/fs/mod.ts";
|
||||
import { join } from "https://deno.land/std/path/mod.ts";
|
||||
|
||||
const publicPath = "./public";
|
||||
|
||||
async function serveStatic(req: ServerRequest): Promise<Response> {
|
||||
// 获取请求的路径
|
||||
const url = new URL(req.url);
|
||||
let filePath = join(publicPath, url.pathname);
|
||||
|
||||
// 如果请求的是根路径,则返回 index.html
|
||||
if (url.pathname === "/") {
|
||||
filePath = join(publicPath, "index.html");
|
||||
}
|
||||
|
||||
// 检查文件是否存在
|
||||
if (await exists(filePath)) {
|
||||
// 返回静态文件
|
||||
const content = await Deno.readFile(filePath);
|
||||
return createResponse(200, content, {
|
||||
"Content-Type": contentType(filePath),
|
||||
});
|
||||
} else {
|
||||
// 如果文件不存在,返回 404 错误页面
|
||||
return createHtmlResponse(
|
||||
`<html><body><h1>404 Not Found</h1><p>The requested URL ${req.url} was not found on this server.</p></body></html>`,
|
||||
404
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function contentType(filePath: string): string {
|
||||
// 根据文件后缀返回对应的 Content-Type
|
||||
const ext = filePath.split(".").pop();
|
||||
switch (ext) {
|
||||
case "html":
|
||||
return "text/html";
|
||||
case "css":
|
||||
return "text/css";
|
||||
case "js":
|
||||
return "application/javascript";
|
||||
case "png":
|
||||
return "image/png";
|
||||
case "jpg":
|
||||
case "jpeg":
|
||||
return "image/jpeg";
|
||||
case "gif":
|
||||
return "image/gif";
|
||||
default:
|
||||
return "text/plain";
|
||||
}
|
||||
}
|
||||
|
||||
// 创建一个服务器并监听请求
|
||||
const server = serve({ port: 8080 });
|
||||
console.log("Server is running at http://localhost:8080");
|
||||
|
||||
for await (const req of server) {
|
||||
const response = await serveStatic(req);
|
||||
await req.respond(response);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user