我最近开始尝试angularjs,当我将index.html和angular.min.js放在同一目录中时,我的网站工作正常:
<!--at the end of the <body> of index.html-->
<script src="angular.min.js"></script>
但是,我已在../node_modules/angular/angular.min.js
我想改用这个脚本:
<script src="../node_modules/angular/angular.min.js"></script>
这不起作用。
我还尝试将其移至像
这样的子目录<script src="node/angular.min.js"></script>
这很有用。因此,问题是我无法从父目录加载脚本的原因吗?
仅供参考,我的树看起来像:
project/
node_modules/
angular/
angular.min.js
app1/
index.html
答案 0 :(得分:1)
在node_modules中,理论上你可以拥有一些应该从外面隐藏的重要模块,数据。如果公开所有node_modules目录,那么任何人都可以从那里访问所有文件。
但是我们只能公开angular目录(如果你需要你可以暴露更多的文件甚至是完整的node_modules,但这不是最好的主意)。在您的服务器文件中添加:
app.use('/angular', express.static(__dirname + '/node_modules/angular/'));
现在你在前端你可以获得角度:
<script src="angular/angular.min.js"></script>
编辑: 仅当您在node.js中使用express时才有效(如果是,请在您的问题中添加express标签)
Edit2(从comemnt回答OP问题): 默认情况下,Node.js服务器和express不提供静态文件。
应该是HTML
方面的另一个目录
没有。如果您已正确配置服务器,则无法从浏览器打开此服务器上的任何文件(这是严重的安全问题)。
如果您尚未在node.js服务器中配置“提供静态文件”但在某些目录中看到静态文件,则可能由apache或nginx服务器提供服务。您可以尝试更改其配置。
如果你没有表达纯粹的node.js,那么提供静态文件会更复杂,请看这个要点:https://gist.github.com/ryanflorence/701407