Change sails.js EJS views to use .html extensions instead of .ejs extensions?

后端 未结 3 645
不知归路
不知归路 2021-01-18 15:36

Is it possible to configure sails.js apps to use .html extentions rather than .ejs (but still use the ejs view engine)?

相关标签:
3条回答
  • 2021-01-18 15:58

    In latest sails.js 0.11, this also valid:

    engine: 'ejs',
    extension: 'html',
    

    To check how they do this, in /node_modules/sails/lib/hooks/views/configure.js:

    if (typeof sails.config.views.engine === 'string') {
        var viewExt = sails.config.views.extension || sails.config.views.engine;
        sails.config.views.engine = {
            name: sails.config.views.engine,
            ext: viewExt
        };
    }
    
    0 讨论(0)
  • 2021-01-18 16:01

    Another approach

    Sails provides EJS templating by default.To override this and to use .html files , here is a simple solution. In your Sails App , go to config/routes.js. You will see following code there

    module.exports.routes = {
    
     /***************************************************************************
     *                                                                          *
     * Make the view located at `views/homepage.ejs` (or `views/homepage.jade`, *
     * etc. depending on your default view engine) your home page.              *
     *                                                                          *
     * (Alternatively, remove this and add an `index.html` file in your         *
     * `assets` directory)                                                      *
     *                                                                          *
     ***************************************************************************/
    
     '/': {
       view: 'homepage'
     }
    
     /***************************************************************************
     *                                                                          *
     * Custom routes here...                                                    *
     *                                                                          *
     *  If a request to a URL doesn't match any of the custom routes above, it  *
     * is matched against Sails route blueprints. See `config/blueprints.js`    *
     * for configuration options and examples.                                  *
     *                                                                          *
     ***************************************************************************/
    
    };
    

    Remove the route to '/' as shown below . Keep it blank

    New routes.js will look like

    module.exports.routes = {
    
       //Remove '/' :)
    
    };
    

    Okay !!! now it’s done you can use your HTML files in Sails app . Put your index.html in assets folder . Sails will now load views from here :)

    0 讨论(0)
  • 2021-01-18 16:10

    In your config/views.js:

    engine: {
      ext: 'html',
      fn: require('ejs').renderFile
    },
    

    Seems though that the future support for this feature is not guaranteed, since they removed this from docs, so use with caution.

    0 讨论(0)
提交回复
热议问题