项目结构
home
├app //项目逻辑目录
├routes
├src
└app.js
├public //静态文件目录
└node_modules
假如我需要定义模板静态文件的路径需要这样定义:
app.use(express.static(path.join(__dirname, '../public')));
怎么样才能使用绝对路径呢?用 __dirname
和 process.cwd()
这些变量方法都不能达到效果。
有什么方法可以获取到项目的根目录然后可以全局使用?
不起作用是指,静态目录不对?那换成:
//假设这段代码是写在home/app目录下
app.use(express.static(path.resolve(__dirname, '..', 'public')));
搞成全局实在没什么用,别闹了
__dirname 表示文件当前路径, ./在require中表示当前目录,process.cwd()表示命令行启动的路径。
你在express中的话,我建议是直接用:path.join(__dirname, '../public')
process.cwd()应该是获取当前工作目录,应该也是项目根目录啊...
global变量全局的,试试挂载到上面,如果express框架的话,有一个供ejs模板使用的'全局'变量
_.extend(app.locals, {
config: config,
Loader: Loader,
assets: assets
})