配置aurelia cli以从子文件夹提供应用程序包

配置aurelia cli以从子文件夹提供应用程序包,aurelia,Aurelia,如何配置aurelia cli以允许从子文件夹(具有视图的mvc控制器)加载应用程序 在/MyController/MyView中,我有以下代码 <div aurelia-app="main" data-module="app2"> <script src="/scripts/vendor-bundle.js" data-main="aurelia-bootstrapper"></script> </div> 当加载程序尝试从/My

如何配置aurelia cli以允许从子文件夹(具有视图的mvc控制器)加载应用程序

/MyController/MyView
中,我有以下代码

<div aurelia-app="main" data-module="app2">
     <script src="/scripts/vendor-bundle.js" data-main="aurelia-bootstrapper"></script>
</div>

当加载程序尝试从
/MyController/MyView/scripts/app bundle.js
加载应用程序包时,我得到了一个404,但它的实际位置是
/scripts/app bundle.js

谢谢你的帮助

拉西

提问动机: 我正在现有的asp.NETMVC5网站中使用Aurelia。我们计划将新页面开发为小型aurelia应用程序(每个mvc视图一个aurelia应用程序)。我们计划在所有视图上重用相同的捆绑包(只需设置“aurelia.setRoot('nameofapp')即可启动正确的应用程序)。当在“/”启动时,这似乎非常有效,但当从“/MyController/MyView”启动时,我们需要修改应用程序包的加载位置,这就是这个问题的所在。

使用“功能” 在
main.js
aurelia引导文件中,您可以编写以下内容:

main.js

configure(aurelia) {
  aurelia.use
    .standardConfiguration()
    .feature('my-app');
}
这将指示aurelia将
my app/index.js
作为插件加载,将
aurelia
对象公开给
configure()
函数,就像在
main.js
文件中一样。您可以在那里做各种有趣的事情,包括设置根视图模型

我的应用程序/index.js

configure(aurelia) {
  aurelia.start().then(() => aurelia.setRoot('my-app/app.js'));
}

需要做两件事:

  • 在“aurelia.json”中设置“build.targets.baseUrl:”../scripts''
  • 按照Matthew的建议使用“功能”
我想其他人可能需要此设置,因此我在此处创建了一个存储库:


Larsi

感谢您指向“功能”方向。我需要再做一步,所以我创建了描述我方法的答案。@MatthewJamesDavis有办法创建两个独立的应用程序,在这种情况下,我可以看到所有东西都被捆绑到app-bundle.js中。我想要两个并行的应用服务于不同的环境。@Larsi我查看了你的回复,谢谢。您是如何知道添加
数据功能=“
属性的?我在任何地方都找不到文档。@pholly“数据功能”名称可以是您选择的任何名称。您只需要在main中使用相同的名称。js@Larsi谢谢我主要是问您在哪里找到该属性的文档。这看起来很重要,因为没有它,你就无法声明应用程序的起点。我在任何地方都找不到它的文档。@Larsi我明白了-您只是在元素上使用了
数据功能
作为普通数据属性,并且在main.js文件中使用jQuery获取了该属性。我以为这是奥雷利亚框架的一部分。谢谢