Hỏi về static file trong express



  • Các bác cho em hỏi. em sử dụng static file trong express
    em có thư mục public/plugin/boostrap/....
    nếu em sử dụng với domain là abc.com/abc thì load được file
    nhưng em call abc.com/abc/def thì lại không load được. có cách nào khai báo 1 phát dùng nhiều path domain không ạ. em cám ơn


  • Global Moderator

    Các bác cho em hỏi. em sử dụng static file trong express
    em có thư mục public/plugin/boostrap/....

    Mình không hiểu 2 cái domain abc.com/abcabc.com/abc/def có quan hệ với thư mục public của bạn như thế nào ?



  • như là em có task và task/add đấy ạ.



  • @Vũ
    khi em chạy task thì nó kiểu domain/task/css
    và vào task/add thì nó lại gọi theo kiểu /task/add/css


  • Global Moderator

    @Nguyễn-Lê-Trung Nếu như vậy bạn sử dụng static middleware bình thường, bằng cách khai báo nhiều lần:

    var router = express.Router();
    router.use('/task', express.static(path.join(process.cwd(), 'public')));
    router.use('/task/add', express.static(path.join(process.cwd(), 'public')));
    


  • @Vũ Có cách nào khai báo 1 lần không ạ. ví dụ sau này thì cứ mỗi domain path như thế này mình lại phải khai báo ạ


  • Global Moderator

    @Nguyễn-Lê-Trung bạn làm 1 file cấu hình ra ngoài. Ví dụ:

    var staticPaths = require('./config.json').staticPaths || ['assets'];
    
    for (let path of staticPaths) {
        router.use(path, express.static(path.join(process.cwd(), 'public')));
    }
    


  • @Vũ
    thanks bác. để em thử xem thế nào ạ



  • @Nguyễn-Lê-trung thử đoạn code sau xem

    app.use(express.static(path.join(__dirname, 'public')));


Log in to reply