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 - 數(shù)據(jù)庫(kù)建表方面的問(wèn)題?2. javascript - angular里一個(gè)關(guān)于ng-bind的問(wèn)題3. mysql - 我用SQL語(yǔ)句 更新 行的時(shí)候,發(fā)現(xiàn)全部 中文都被清空了,請(qǐng)問(wèn)怎么解決?4. python - xpath提取網(wǎng)頁(yè)路徑?jīng)]問(wèn)題,但是缺失內(nèi)容?5. javascript - IOS微信audio標(biāo)簽不能通過(guò)touchend播放6. [前端求職必看]前端開(kāi)發(fā)面試題與答案精選_大綱7. java中這個(gè)頁(yè)面默認(rèn)是utf-8編碼的,1輸出亂碼可以理解,可是2就不理解了?8. javascript - 求教各位,本地HTML頁(yè)面怎么在DIV中嵌套服務(wù)器上的頁(yè)面內(nèi)容?不用iframe。9. python-mysql Commands out of sync10. javascript - angularJS指令如何暴露API給外面的controller使用?
