Node.js Express - 指定应用程序根目录的路径

时间:2014-11-22 04:12:44

标签: node.js express

我正在尝试访问我的应用中包含几个.js控制器模块的文件夹。

在我的一个.html文件的头部我声明了这个脚本:

    

问题是当应用程序运行时,应用程序似乎知道当前路径是什么,因此我的脚本路径与实际文件系统无关,它相对于应用程序的当前路径,我可能会说很奇怪。

因此,快速解决方法是轻松指定应用程序的根目录,因为fancy_scripts只是从根目录下的一个文件夹。

以下不起作用,因为我上面提到的问题

<head>
    <script type="text/javascript" src="../fancy_scripts/userHomeController.js"></script>
</head>

但是必须有一种方法来指定应用程序的全局根,例如双斜杠“//”

<head>
    <script type="text/javascript" src="//fancy_scripts/userHomeController.js"></script>
</head>

(以上也不起作用,//是MS Windows中的根(我认为),但不是Express应用程序)这是一个简单的问题,我希望这是一个简单的解决方案。然而,可能有更好的方法来做事。

我已经拥有这3行代码:

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

1 个答案:

答案 0 :(得分:2)

使用express时,路径将通过您声明的一个处理程序或通过静态模块进行路由(如果已设置)。通常,Express配置为使用静态并将其映射到应用程序公用文件夹。使用快速生成器时,该文件夹位于<approot>/public/。所以为了访问这样的东西:

<head>
    <script type="text/javascript" src="/fancy_scripts/userHomeController.js"></script>
</head>

您需要将userHomeController放在<approot>/public/fancy_scripts/userHomeController.js