Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cbe0d65320 |
@@ -47,7 +47,7 @@ pnpm start
|
||||
```bash
|
||||
curl --proto '=https' --tlsv1.2 -fsSL \
|
||||
https://git.awaioi.com/awaioi/TallyNote/raw/branch/main/install.sh \
|
||||
| sudo bash -s -- --apply --version 1.0.0 \
|
||||
| sudo bash -s -- --apply --version 1.0.1 \
|
||||
--signing-key /root/tallynote-update.pub \
|
||||
--update-public-key-file /root/tallynote-update.pub
|
||||
```
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "tallynote",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"packageManager": "pnpm@9.0.6",
|
||||
|
||||
+16
-5
@@ -1640,13 +1640,24 @@ export async function buildApp(database: DatabaseContext, config: AppConfig) {
|
||||
return reply.send(await safeReadStream(config.exportsDir, job.filePath));
|
||||
});
|
||||
|
||||
if (existsSync(config.webDir)) {
|
||||
const hasWeb = existsSync(config.webDir);
|
||||
if (hasWeb) {
|
||||
await app.register(fastifyStatic, { root: config.webDir, wildcard: false });
|
||||
app.setNotFoundHandler((request, reply) => {
|
||||
if (request.url.startsWith("/api/")) return reply.code(404).send(errorPayload(request, new AppError(404, "NOT_FOUND", "接口不存在")));
|
||||
return reply.sendFile("index.html");
|
||||
}
|
||||
// Keep API errors structured even when the production frontend has not been
|
||||
// built yet (for example in a clean CI checkout or an API-only process).
|
||||
app.setNotFoundHandler((request, reply) => {
|
||||
if (request.url.split("?", 1)[0]!.startsWith("/api/")) {
|
||||
return reply.code(404).send(errorPayload(request, new AppError(404, "NOT_FOUND", "接口不存在")));
|
||||
}
|
||||
if (hasWeb) return reply.sendFile("index.html");
|
||||
return reply.code(404).send({
|
||||
message: `Route ${request.method}:${request.url} not found`,
|
||||
error: "Not Found",
|
||||
statusCode: 404,
|
||||
});
|
||||
} else {
|
||||
});
|
||||
if (!hasWeb) {
|
||||
app.get("/", async () => ({ name: "TallyNote", mode: "api", hint: "开发界面运行在 Vite 端口" }));
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ describe("TallyNote API", () => {
|
||||
process.env.TALLYNOTE_PUBLIC_ORIGIN = "http://127.0.0.1:3999";
|
||||
process.env.TALLYNOTE_COOKIE_SECURE = "false";
|
||||
config = loadConfig();
|
||||
// API tests must not depend on the ignored, locally generated dist/ tree.
|
||||
config.webDir = path.join(dataDir, "missing-web");
|
||||
prepareDataDirectories(config);
|
||||
database = openDatabase(config);
|
||||
app = await buildApp(database, config);
|
||||
|
||||
Reference in New Issue
Block a user