Retseptlar1 min read

Serve Static

Single Page Application (SPA) kabi statik kontentni serve qilish uchun @nestjs/serve-static paketidagi ServeStaticModule dan foydalanishimiz mumkin.

Single Page Application (SPA) kabi statik kontentni serve qilish uchun @nestjs/serve-static paketidagi ServeStaticModule dan foydalanishimiz mumkin.

O'rnatish

Avval kerakli paketni o'rnatamiz:

Terminal
1$ npm install --save @nestjs/serve-static

Bootstrap

O'rnatish tugagach, ServeStaticModule ni root AppModule ga import qilib, forRoot() metodiga konfiguratsiya obyekti uzatish orqali sozlaymiz.

TypeScript
1import { Module } from '@nestjs/common';
2import { AppController } from './app.controller';
3import { AppService } from './app.service';
4import { ServeStaticModule } from '@nestjs/serve-static';
5import { join } from 'path';
6
7@Module({
8  imports: [
9    ServeStaticModule.forRoot({
10      rootPath: join(__dirname, '..', 'client'),
11    }),
12  ],
13  controllers: [AppController],
14  providers: [AppService],
15})
16export class AppModule {}

Shundan so'ng statik saytni build qiling va uning fayllarini rootPath xossasida ko'rsatilgan joyga joylashtiring.

Konfiguratsiya

ServeStaticModule xatti-harakatini moslashtirish uchun turli opsiyalar bilan sozlanishi mumkin. Masalan, statik ilovangiz render qilinadigan path'ni belgilashingiz, chiqarib tashlanadigan yo'llarni ko'rsatishingiz, Cache-Control response header'ini yoqish yoki o'chirishingiz va hokazo. Opsiyalarning to'liq ro'yxati bu yerda.

Notice

Static App uchun standart renderPath qiymati * (barcha yo'llar) bo'lib, modul javob sifatida index.html faylini yuboradi. Bu sizga SPA uchun client-side routing yaratish imkonini beradi. Controller'larda belgilangan path'lar serverga fallback qiladi. Ushbu xatti-harakatni serveRoot, renderPath va boshqa opsiyalarni birga sozlash orqali o'zgartirishingiz mumkin. Bundan tashqari, Fastify adapterida Express'dagi fallthrough xatti-harakatini taqlid qilish uchun serveStaticOptions.fallthrough opsiyasi qo'shilgan. Mavjud bo'lmagan route uchun 404 o'rniga index.html yuborilishi kerak bo'lsa, uni true ga o'rnatish kerak.

Misol

Ishlaydigan namunani bu yerda ko'rishingiz mumkin.