我正在尝试访问我的应用中包含几个.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'));
答案 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