trailsjs / doc

:books: Trails.js Documentation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Serving Static Files in Express

moe-dizzle opened this issue · comments

commented

In Express, one can use app.use and express.static to bind the absolute directory path such as user/home/nodeproject/public to a shortcut: /public, so that html can locate files using a relative path.
For an example expressApp.use('/public', require('express').static(process.cwd() + '/public')); With this I should be able to to display an image using a reative path in my html file, <img src="/public/img/goat.jpg" alt="chilling with a goat">. In the docs, can you show where app.use and express.static should be used ? I tried the init method on the config/web.js file, but it doesn't work.

@jaumard can you help with this?

@Maurice-Hayward hey :) normally the init should work... I need to test that. But we handle this case in the routes.js file, for static assets you can add a route like this:

{
    method: 'GET',
    path: '/node_modules',
    handler: {
      directory: {
        path: 'node_modules'
      }
    }
  },

@tjwebb maybe we should align with trailpack-hapi, I don't know the status but I think now you manage it in other way.

commented

@jaumard Thanks you were right but both hapi and express are slightly different.
To get hapi to work I had to do this:

` {method: 'GET',
path: '/public/{param*}',
handler: {
  directory: {
  path: path.resolve(__dirname, '..', 'public'),
  index:true,
  listing: true,
  redirectToSlash:true
  }
 

}

}`

To get Express to work I had to do this:

`{

method: 'GET',
path: '/public/',
handler: {
directory: {
path: path.resolve(__dirname, '..', 'public'),
index:true,
listing: true,
redirectToSlash:true
}
}
}`