javascript - koa關(guān)于render時的路徑問題?
問題描述
以上是目錄結(jié)構(gòu),路由如下:
const router = require(’koa-router’)();const views = require(’koa-views’);router.use(views(__dirname + ’/views’));router.get(’/’, async (ctx, next) => { await ctx.render(’index’);});module.exports = router;
以上運行,會報如下錯誤:
于是我將關(guān)于路徑那句改成
router.use(views(__dirname + ’../views’));
報錯信息變成
很無奈的,改成這樣就能運行了:
router.use(views(__dirname + ’/../views’));
現(xiàn)在是正常了,但這樣顯然是不合理的,請問應(yīng)該怎么改呢?
順手貼出index.js的代碼:
const Koa = require(’koa’);const router = require(’./routes/routes’);const app = new Koa();// log request URL:app.use(async (ctx, next) => { console.log(`Process ${ctx.request.method} ${ctx.request.url}...`); await next();});// add router middleware:app.use(router.routes());app.listen(3000);console.log(’app started at port 3000...’);
謝謝!
問題解答
回答1:你的routes.js文件是在/Users/dark/Works/drip-file/routes文件夾下的,所以__dirname的值就是/Users/dark/Works/drip-file/routes,__dirname + ’/views’就等于/Users/dark/Works/drip-file/routes/views,所以訪問index文件的時候就會去這個文件夾下面尋找,所以沒有找到。
當你改成__dirname+’/../views’的時候,就會去/Users/dark/Works/drip-file/views這個文件夾下尋找了,所以能找到。如果想改成__dirname+’/views’,如果沒有單獨建一個routes文件夾的必要,就把routes.js文件拿到和index.js文件同一個文件夾吧。
相關(guān)文章:
1. MySQL中無法修改字段名的疑問2. javascript - 如何讓移動端網(wǎng)頁的輸入框固定在底部?3. docker-machine添加一個已有的docker主機問題4. angular.js - angular內(nèi)容過長展開收起效果5. android - QQ物聯(lián),視頻通話6. mysql - 怎么讓 SELECT 1+null 等于 17. 大家好,請問在python腳本中怎么用virtualenv激活指定的環(huán)境?8. 網(wǎng)頁爬蟲 - 用Python3的requests庫模擬登陸B(tài)ilibili總是提示驗證碼錯誤怎么辦?9. javascript - 微信小程序封裝定位問題(封裝異步并可能多次請求)10. python的前景到底有大?如果不考慮數(shù)據(jù)挖掘,機器學(xué)習(xí)這塊?
