我有一个快速应用程序,我将用作代理,捕获从Angular编写的应用程序发出的一些请求.Angular应用程序已经存在,并且具有我不想改变的构建配置.
我想在并行文件树中管理我的Angular和Express应用程序,例如:
Angular app位于以下路径/src/angularapp/images/img1.gif
/src/expressapp/app.js
我可以从包含Express.js应用程序的并行文件树中访问Angular应用程序内部的静态资源吗?我已经尝试了几次,但发现很难正确配置,所以我想知道是否有什么东西阻止了这一点.
我发布了这个因为我正在寻找答案而找不到答案.从表面上看,这一定是可能的,但我在配置它时遇到了很多困难.
最后,我发现以下工作正常,但非常微妙的语法差异导致事情无法按预期工作.
在快速根中有一个静态目录的简单模型很容易
app.use (express.static( './public'));
Run Code Online (Sandbox Code Playgroud)
假设我的静态图像在
/root/expressapp/public/images
Run Code Online (Sandbox Code Playgroud)
我可以使用http://localhost/images/image.png检索图像
你也看到了表格
app.use ( express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)
这将为完全限定的路径交换第一个示例的相对路径.
假设我想从角度应用程序中的并行目录中检索图像.在这种情况下,相对路径就像我预期的那样
app.use( express.static('../angularapp/images'));
Run Code Online (Sandbox Code Playgroud)
现在我可以在角度应用中访问图像了
http://localhost/image1.gif
Run Code Online (Sandbox Code Playgroud)
我也可以在并行树中对别目录进行别名
app.use ('/fbsite', express.static( '../angularapp/images'));
Run Code Online (Sandbox Code Playgroud)
和访问
http://localhost/angularsite/image1.gif
Run Code Online (Sandbox Code Playgroud)
我也可以使用完全限定的路径,但是如果你想这样做,你需要在路径中添加一个前导斜杠,因为__dirname没有尾部斜杠
app.use('/angularimages', express.static( __dirname + '/../angularapp/images'));
Run Code Online (Sandbox Code Playgroud)
并访问此
http://localhost/angularimages/image1.gif
Run Code Online (Sandbox Code Playgroud)
需要仔细关注路径构建,但通过一些练习,您可以组织对资源的访问,而无需在单个文件树中同时构建快速应用程序和前端代码.这有时可以简化重构构建的重构并增强解决方案的模块化.
在我的情况下,我预计从Angular-js前端演变为涉及React.js的前端,并且这种并行文件树的方法可以增强重构,因为它隔离了系统的每个子部分中复杂的构建依赖性.
| 归档时间: |
|
| 查看次数: |
3844 次 |
| 最近记录: |