javascript - koa關(guān)于render時(shí)的路徑問(wèn)題?
問(wèn)題描述
以上是目錄結(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;
以上運(yùn)行,會(huì)報(bào)如下錯(cuò)誤:
于是我將關(guān)于路徑那句改成
router.use(views(__dirname + ’../views’));
報(bào)錯(cuò)信息變成
很無(wú)奈的,改成這樣就能運(yùn)行了:
router.use(views(__dirname + ’/../views’));
現(xiàn)在是正常了,但這樣顯然是不合理的,請(qǐng)問(wè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...’);
謝謝!
問(wèn)題解答
回答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,所以訪問(wèn)index文件的時(shí)候就會(huì)去這個(gè)文件夾下面尋找,所以沒(méi)有找到。
當(dāng)你改成__dirname+’/../views’的時(shí)候,就會(huì)去/Users/dark/Works/drip-file/views這個(gè)文件夾下尋找了,所以能找到。如果想改成__dirname+’/views’,如果沒(méi)有單獨(dú)建一個(gè)routes文件夾的必要,就把routes.js文件拿到和index.js文件同一個(gè)文件夾吧。
相關(guān)文章:
1. mysql - 表名稱(chēng)前綴到底有啥用?2. 致命錯(cuò)誤: Class ’appfacadeTest’ not found3. 老師們php,插入數(shù)據(jù)庫(kù)mysql,都是空的,要怎么解決4. 求大神支招,php怎么操作在一個(gè)html文件的<head>標(biāo)記內(nèi)添加內(nèi)容?5. php點(diǎn)贊一天一次怎么實(shí)現(xiàn)6. 怎么php怎么通過(guò)數(shù)組顯示sql查詢(xún)結(jié)果呢,查詢(xún)結(jié)果有多條,如圖。7. PHP類(lèi)屬性聲明?8. sql語(yǔ)句 - 如何在mysql中批量添加用戶(hù)?9. phpstady在win10上運(yùn)行10. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)
