gpt4 book ai didi

html - 在父目录中使用 javascript 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 00:46:11 24 4
gpt4 key购买 nike

我最近开始尝试 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

最佳答案

在node_modules中,理论上你可以拥有一些重要的模块、数据,这些模块、数据应该对外部隐藏。如果您公开所有 node_modules 目录,那么任何人都可以从那里访问您的所有文件。

但是我们只能公开角度目录(如果需要,您可以公开更多文件甚至完整的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 默认情况下不提供静态文件。

should just be another directory in terms of HTML

没有。如果您正确配置了服务器,则无法从浏览器打开该服务器上的任何文件(这是严重的安全问题)。

如果您尚未在 Node.js 服务器中配置“提供静态文件”,但在某些目录中看到静态文件,那么您可能是通过 apache 或 nginx 服务器来提供它们的。您可以尝试更改其配置。

如果你没有express only纯node.js,那么提供静态文件会更复杂,请看看这个要点:https://gist.github.com/ryanflorence/701407

关于html - 在父目录中使用 javascript 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34627981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com