Thursday 20 April 2017

Failed to lookup view in views directory by express.js and path

I have a problem to route views by node.js and express.js The tree of my project is look like :

app/
   app.js
   views/
       index.html
       login.html
   public/
         css/
         js/

I use express and path ; Here is my code to set paths:

app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
//forms
app.set('views', path.join(__dirname, 'views'));
//public 
app.use(express.static(path.join(__dirname, 'public')));

And I am getting this error:

Error: Failed to lookup view "login.html" in views directory "/home/Project/V0.0.8_3/app/views"
    at EventEmitter.render (/home/Project/V0.0.8_3/node_modules/express/lib/application.js:580:17)
    at ServerResponse.render (/home/Project/V0.0.8_3/node_modules/express/lib/response.js:966:7)
    at /home/Project/V0.0.8_3/app/routes/login.js:11:11
    at Layer.handle [as handle_request] (/home/Project/V0.0.8_3/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/Project/V0.0.8_3/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/home/Project/V0.0.8_3/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/Project/V0.0.8_3/node_modules/express/lib/router/layer.js:95:5)
    at /home/xvps/Tracker/V0.0.8_3/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/home/Project/V0.0.8_3/node_modules/express/lib/router/index.js:335:12)
    at next (/home/Project/V0.0.8_3/node_modules/express/lib/router/index.js:275:10)
    at Function.handle (/home/Project/V0.0.8_3/node_modules/express/lib/router/index.js:174:3)
    at router (/home/Project/V0.0.8_3/node_modules/express/lib/router/index.js:47:12)
    at Layer.handle [as handle_request] (/home/Project/V0.0.8_3/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/Project/V0.0.8_3/node_modules/express/lib/router/index.js:317:13)
    at /home/Project/V0.0.8_3/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/home/Project/V0.0.8_3/node_modules/express/lib/router/index.js:335:12)

and when I try to get a file from public directory I get this error:

Cannot GET /js/login.js

Actually I know different between local path and server path and I have read a lot of related questions have been asked in stack overflow but I cannot find what is my mistake.



via Fa.Shapouri

No comments:

Post a Comment