diff options
| author | Acid Chicken (硫酸鶏) <root@acid-chicken.com> | 2024-02-13 01:43:06 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-13 10:43:06 +0900 |
| commit | 309a943528119630e999176f9542e4bbff43efa6 (patch) | |
| tree | 13ef53ae2c63f23414623ce46ba3d0e3f164ec17 /packages/backend/src/server/web/ClientServerService.ts | |
| parent | Update CHANGELOG.md (#13282) (diff) | |
| download | sharkey-309a943528119630e999176f9542e4bbff43efa6.tar.gz sharkey-309a943528119630e999176f9542e4bbff43efa6.tar.bz2 sharkey-309a943528119630e999176f9542e4bbff43efa6.zip | |
perf: omit search for immutable static requests (#13265)
* perf: omit search for immutable static requests
* perf: also applies to /files
* fix: exclude /proxy
* /files/:key/*を301 redirectに
---------
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Diffstat (limited to 'packages/backend/src/server/web/ClientServerService.ts')
| -rw-r--r-- | packages/backend/src/server/web/ClientServerService.ts | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts index 2592253b8a..f255e28fc2 100644 --- a/packages/backend/src/server/web/ClientServerService.ts +++ b/packages/backend/src/server/web/ClientServerService.ts @@ -34,6 +34,7 @@ import { ChannelEntityService } from '@/core/entities/ChannelEntityService.js'; import type { ChannelsRepository, ClipsRepository, FlashsRepository, GalleryPostsRepository, MiMeta, NotesRepository, PagesRepository, ReversiGamesRepository, UserProfilesRepository, UsersRepository } from '@/models/_.js'; import type Logger from '@/logger.js'; import { deepClone } from '@/misc/clone.js'; +import { handleRequestRedirectToOmitSearch } from '@/misc/fastify-hook-handlers.js'; import { bindThis } from '@/decorators.js'; import { FlashEntityService } from '@/core/entities/FlashEntityService.js'; import { RoleService } from '@/core/RoleService.js'; @@ -253,11 +254,16 @@ export class ClientServerService { //#region vite assets if (this.config.clientManifestExists) { - fastify.register(fastifyStatic, { - root: viteOut, - prefix: '/vite/', - maxAge: ms('30 days'), - decorateReply: false, + fastify.register((fastify, options, done) => { + fastify.register(fastifyStatic, { + root: viteOut, + prefix: '/vite/', + maxAge: ms('30 days'), + immutable: true, + decorateReply: false, + }); + fastify.addHook('onRequest', handleRequestRedirectToOmitSearch); + done(); }); } else { const port = (process.env.VITE_PORT ?? '5173'); @@ -292,11 +298,16 @@ export class ClientServerService { decorateReply: false, }); - fastify.register(fastifyStatic, { - root: tarball, - prefix: '/tarball/', - immutable: true, - decorateReply: false, + fastify.register((fastify, options, done) => { + fastify.register(fastifyStatic, { + root: tarball, + prefix: '/tarball/', + maxAge: ms('30 days'), + immutable: true, + decorateReply: false, + }); + fastify.addHook('onRequest', handleRequestRedirectToOmitSearch); + done(); }); fastify.get('/favicon.ico', async (request, reply) => { |