在父目录中使用JavaScript不起作用
我最近开始尝试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
拥有这个脚本的../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目录,那么任何人都可以从那里访问你的所有文件。
但是我们只能暴露angular度目录(如果你需要的话可以暴露更多的文件,甚至是完整的node_modules,但这不是最好的主意)。 在你的服务器文件中添加:
app.use('/angular', express.static(__dirname + '/node_modules/angular/'));
现在你在前面你可以得到angular度:
<script src="angular/angular.min.js"></script>
编辑:这只有在node.js中使用快递(如果是的话,请在您的问题中添加快递标签)
Edit2(从comemnt回答OP问题):Node.js服务器和默认快递不提供静态文件。
应该只是HTML的另一个目录
不,如果你已经正确的configuration了服务器,你不能从浏览器上打开这个服务器上的任何文件(这是严重的安全问题)。
如果你没有在你的node.js服务器上configuration“提供静态文件”,但是在某些目录中看到静态文件,那么你可能是通过apache或者nginx服务器来提供的。 你可以尝试改变他们的configuration。
如果你没有expression纯粹的node.js然后服务静态文件更复杂,请看这个要点: https : //gist.github.com/ryanflorence/701407
- `通过app.post('/',以expressjs呈现的页面上确认表单重新提交问题
- 使用NODEJS后端从HTML表单发送JSON
- 运行“业力:单位”(业)任务警告:无法加载“HTML”,它没有注册! 也许你错过了一些插件?
- 为什么Phantom.js没有评估我的Backbone应用程序的工作?
- 在我的html文件中需要React组件
- 如何加载webpack捆绑包asynchronous,但按顺序执行?
- 不能让英雄服务器与Firebase数据库一起工作? Heroku崩溃?
- 我想在点击一个button时在node.js服务器上触发一次server-sent-event
- 如何用Node.js唯一标识一个套接字