express - node.js 路径问题
高洛峰
高洛峰 2017-04-17 14:20:26
[Node.js讨论组]

项目结构

home
  ├app            //项目逻辑目录
    ├routes
    ├src
    └app.js
  ├public        //静态文件目录
  └node_modules

假如我需要定义模板静态文件的路径需要这样定义:

app.use(express.static(path.join(__dirname, '../public')));

怎么样才能使用绝对路径呢?用 __dirnameprocess.cwd() 这些变量方法都不能达到效果。
有什么方法可以获取到项目的根目录然后可以全局使用?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
ringa_lee

不起作用是指,静态目录不对?那换成:

//假设这段代码是写在home/app目录下
app.use(express.static(path.resolve(__dirname, '..', 'public')));

搞成全局实在没什么用,别闹了

高洛峰
process.cwd()应该是获取当前工作目录,应该也是项目根目录啊...
global变量全局的,试试挂载到上面,如果express框架的话,有一个供ejs模板使用的'全局'变量
 _.extend(app.locals, {
  config: config,
  Loader: Loader,
  assets: assets
})
    
天蓬老师

__dirname 表示文件当前路径, ./在require中表示当前目录,process.cwd()表示命令行启动的路径。

你在express中的话,我建议是直接用:path.join(__dirname, '../public')

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号