mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
move static handler to separate middleware
This commit is contained in:
18
website/src/middlewares/api-v3/static.js
Normal file
18
website/src/middlewares/api-v3/static.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import express from 'express';
|
||||||
|
import nconf from 'nconf';
|
||||||
|
import path from 'path';
|
||||||
|
|
||||||
|
const IS_PROD = nconf.get('IS_PROD');
|
||||||
|
const MAX_AGE = IS_PROD ? 31536000000 : 0;
|
||||||
|
const PUBLIC_DIR = path.join(__dirname, '/../../../public');
|
||||||
|
const BUILD_DIR = path.join(__dirname, '/../../../build');
|
||||||
|
|
||||||
|
export default function staticMiddleware (expressApp) {
|
||||||
|
// TODO move all static files to a single location (one for public and one for build)
|
||||||
|
expressApp.use(express.static(BUILD_DIR, { maxAge: MAX_AGE }));
|
||||||
|
expressApp.use('/common/dist', express.static(`${PUBLIC_DIR}/../../common/dist`, { maxAge: MAX_AGE }));
|
||||||
|
expressApp.use('/common/audio', express.static(`${PUBLIC_DIR}/../../common/audio`, { maxAge: MAX_AGE }));
|
||||||
|
expressApp.use('/common/script/public', express.static(`${PUBLIC_DIR}/../../common/script/public`, { maxAge: MAX_AGE }));
|
||||||
|
expressApp.use('/common/img', express.static(`${PUBLIC_DIR}/../../common/img`, { maxAge: MAX_AGE }));
|
||||||
|
expressApp.use(express.static(PUBLIC_DIR));
|
||||||
|
};
|
||||||
@@ -4,7 +4,7 @@ import nconf from 'nconf';
|
|||||||
import logger from './libs/api-v3/logger';
|
import logger from './libs/api-v3/logger';
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
import http from 'http';
|
import http from 'http';
|
||||||
import path from 'path';
|
// import path from 'path';
|
||||||
// let swagger = require('swagger-node-express');
|
// let swagger = require('swagger-node-express');
|
||||||
import autoinc from 'mongoose-id-autoinc';
|
import autoinc from 'mongoose-id-autoinc';
|
||||||
import passport from 'passport';
|
import passport from 'passport';
|
||||||
@@ -14,6 +14,7 @@ import mongoose from 'mongoose';
|
|||||||
import Q from 'q';
|
import Q from 'q';
|
||||||
import domainMiddleware from './middlewares/api-v3/domain';
|
import domainMiddleware from './middlewares/api-v3/domain';
|
||||||
import attachMiddlewares from './middlewares/api-v3/index';
|
import attachMiddlewares from './middlewares/api-v3/index';
|
||||||
|
import staticMiddleware from './middlewares/api-v3/static';
|
||||||
|
|
||||||
// Setup translations
|
// Setup translations
|
||||||
// let i18n = require('./libs/api-v2/i18n');
|
// let i18n = require('./libs/api-v2/i18n');
|
||||||
@@ -73,7 +74,7 @@ passport.use(new FacebookStrategy({
|
|||||||
}, (accessToken, refreshToken, profile, done) => done(null, profile)));
|
}, (accessToken, refreshToken, profile, done) => done(null, profile)));
|
||||||
|
|
||||||
// ------------ Server Configuration ------------
|
// ------------ Server Configuration ------------
|
||||||
let publicDir = path.join(__dirname, '/../public');
|
// let publicDir = path.join(__dirname, '/../public');
|
||||||
|
|
||||||
app.set('port', nconf.get('PORT'));
|
app.set('port', nconf.get('PORT'));
|
||||||
|
|
||||||
@@ -147,7 +148,7 @@ require('./routes/api-v2/swagger')(swagger, v2);
|
|||||||
// Cache emojis without copying them to build, they are too many
|
// Cache emojis without copying them to build, they are too many
|
||||||
|
|
||||||
oldApp.use(require('./middlewares/api-v2/errorHandler'));
|
oldApp.use(require('./middlewares/api-v2/errorHandler'));
|
||||||
*/
|
*
|
||||||
let maxAge = IS_PROD ? 31536000000 : 0;
|
let maxAge = IS_PROD ? 31536000000 : 0;
|
||||||
|
|
||||||
oldApp.use(express.static(path.join(__dirname, '/../build'), { maxAge }));
|
oldApp.use(express.static(path.join(__dirname, '/../build'), { maxAge }));
|
||||||
@@ -156,6 +157,9 @@ oldApp.use('/common/audio', express.static(`${publicDir}/../../common/audio`, {
|
|||||||
oldApp.use('/common/script/public', express.static(`${publicDir}/../../common/script/public`, { maxAge }));
|
oldApp.use('/common/script/public', express.static(`${publicDir}/../../common/script/public`, { maxAge }));
|
||||||
oldApp.use('/common/img', express.static(`${publicDir}/../../common/img`, { maxAge }));
|
oldApp.use('/common/img', express.static(`${publicDir}/../../common/img`, { maxAge }));
|
||||||
oldApp.use(express.static(publicDir));
|
oldApp.use(express.static(publicDir));
|
||||||
|
*/
|
||||||
|
|
||||||
|
staticMiddleware(app);
|
||||||
|
|
||||||
server.on('request', app);
|
server.on('request', app);
|
||||||
server.listen(app.get('port'), () => {
|
server.listen(app.get('port'), () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user