mirror of https://github.com/Chocobozzz/PeerTube
Server: move static/client routes in controllers/
parent
8e124f999b
commit
79530164b6
33
server.js
33
server.js
|
@ -2,7 +2,6 @@
|
|||
|
||||
// ----------- Node modules -----------
|
||||
const bodyParser = require('body-parser')
|
||||
const cors = require('cors')
|
||||
const express = require('express')
|
||||
const expressValidator = require('express-validator')
|
||||
const http = require('http')
|
||||
|
@ -66,35 +65,17 @@ app.use(expressValidator({
|
|||
|
||||
// ----------- Views, routes and static files -----------
|
||||
|
||||
// API routes
|
||||
// API
|
||||
const apiRoute = '/api/' + constants.API_VERSION
|
||||
app.use(apiRoute, routes.api)
|
||||
|
||||
// Client files
|
||||
app.use('/', routes.client)
|
||||
|
||||
// Static client files
|
||||
// TODO: move in client
|
||||
app.use('/client', express.static(path.join(__dirname, '/client/dist'), { maxAge: constants.STATIC_MAX_AGE }))
|
||||
// 404 for static files not found
|
||||
app.use('/client/*', function (req, res, next) {
|
||||
res.sendStatus(404)
|
||||
})
|
||||
// Static files
|
||||
app.use('/', routes.static)
|
||||
|
||||
const torrentsPhysicalPath = constants.CONFIG.STORAGE.TORRENTS_DIR
|
||||
app.use(constants.STATIC_PATHS.TORRENTS, cors(), express.static(torrentsPhysicalPath, { maxAge: constants.STATIC_MAX_AGE }))
|
||||
|
||||
// Videos path for webseeding
|
||||
const videosPhysicalPath = constants.CONFIG.STORAGE.VIDEOS_DIR
|
||||
app.use(constants.STATIC_PATHS.WEBSEED, cors(), express.static(videosPhysicalPath, { maxAge: constants.STATIC_MAX_AGE }))
|
||||
|
||||
// Thumbnails path for express
|
||||
const thumbnailsPhysicalPath = constants.CONFIG.STORAGE.THUMBNAILS_DIR
|
||||
app.use(constants.STATIC_PATHS.THUMBNAILS, express.static(thumbnailsPhysicalPath, { maxAge: constants.STATIC_MAX_AGE }))
|
||||
|
||||
// Video previews path for express
|
||||
const previewsPhysicalPath = constants.CONFIG.STORAGE.PREVIEWS_DIR
|
||||
app.use(constants.STATIC_PATHS.PREVIEWS, express.static(previewsPhysicalPath, { maxAge: constants.STATIC_MAX_AGE }))
|
||||
|
||||
// Always serve index client page
|
||||
// Always serve index client page (the client is a single page application, let it handle routing)
|
||||
app.use('/*', function (req, res, next) {
|
||||
res.sendFile(path.join(__dirname, './client/dist/index.html'))
|
||||
})
|
||||
|
@ -136,6 +117,8 @@ app.use(function (err, req, res, next) {
|
|||
res.sendStatus(err.status || 500)
|
||||
})
|
||||
|
||||
// ----------- Run -----------
|
||||
|
||||
const port = constants.CONFIG.LISTEN.PORT
|
||||
installer.installApplication(function (err) {
|
||||
if (err) throw err
|
||||
|
|
|
@ -13,8 +13,9 @@ const Video = mongoose.model('Video')
|
|||
const router = express.Router()
|
||||
|
||||
const opengraphComment = '<!-- opengraph tags -->'
|
||||
const embedPath = path.join(__dirname, '../../client/dist/standalone/videos/embed.html')
|
||||
const indexPath = path.join(__dirname, '../../client/dist/index.html')
|
||||
const distPath = path.join(__dirname, '../../client/dist')
|
||||
const embedPath = path.join(distPath, 'standalone/videos/embed.html')
|
||||
const indexPath = path.join(distPath, 'index.html')
|
||||
|
||||
// Special route that add OpenGraph tags
|
||||
// Do not use a template engine for a so little thing
|
||||
|
@ -24,6 +25,14 @@ router.use('/videos/embed', function (req, res, next) {
|
|||
res.sendFile(embedPath)
|
||||
})
|
||||
|
||||
// Static HTML/CSS/JS client files
|
||||
router.use('/client', express.static(distPath, { maxAge: constants.STATIC_MAX_AGE }))
|
||||
|
||||
// 404 for static files not found
|
||||
router.use('/client/*', function (req, res, next) {
|
||||
res.sendStatus(404)
|
||||
})
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
module.exports = router
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
|
||||
const apiController = require('./api/')
|
||||
const clientController = require('./client')
|
||||
const staticController = require('./static')
|
||||
|
||||
module.exports = {
|
||||
api: apiController,
|
||||
client: clientController
|
||||
client: clientController,
|
||||
static: staticController
|
||||
}
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
'use strict'
|
||||
|
||||
const express = require('express')
|
||||
const cors = require('cors')
|
||||
|
||||
const constants = require('../initializers/constants')
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
/*
|
||||
Cors is very important to let other pods access torrent and video files
|
||||
*/
|
||||
|
||||
const torrentsPhysicalPath = constants.CONFIG.STORAGE.TORRENTS_DIR
|
||||
router.use(
|
||||
constants.STATIC_PATHS.TORRENTS,
|
||||
cors(),
|
||||
express.static(torrentsPhysicalPath, { maxAge: constants.STATIC_MAX_AGE })
|
||||
)
|
||||
|
||||
// Videos path for webseeding
|
||||
const videosPhysicalPath = constants.CONFIG.STORAGE.VIDEOS_DIR
|
||||
router.use(
|
||||
constants.STATIC_PATHS.WEBSEED,
|
||||
cors(),
|
||||
express.static(videosPhysicalPath, { maxAge: constants.STATIC_MAX_AGE })
|
||||
)
|
||||
|
||||
// Thumbnails path for express
|
||||
const thumbnailsPhysicalPath = constants.CONFIG.STORAGE.THUMBNAILS_DIR
|
||||
router.use(
|
||||
constants.STATIC_PATHS.THUMBNAILS,
|
||||
express.static(thumbnailsPhysicalPath, { maxAge: constants.STATIC_MAX_AGE })
|
||||
)
|
||||
|
||||
// Video previews path for express
|
||||
const previewsPhysicalPath = constants.CONFIG.STORAGE.PREVIEWS_DIR
|
||||
router.use(
|
||||
constants.STATIC_PATHS.PREVIEWS,
|
||||
express.static(previewsPhysicalPath, { maxAge: constants.STATIC_MAX_AGE })
|
||||
)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
module.exports = router
|
||||
|
Loading…
Reference in New Issue