【问题标题】:Configuring aurelia cli to serve app-bundle from a subfolder配置 aurelia cli 以从子文件夹提供应用程序包
【发布时间】:2016-08-03 21:01:06
【问题描述】:

如何配置 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.net mvc 5 网站中使用 Aurelia。我们计划将新页面开发为小型 aurelia 应用程序(每个 mvc 视图一个 aurelia 应用程序)。我们计划在所有视图上重用相同的包(只需设置“aurelia.setRoot('nameofapp')”以启动正确的应用程序)。这似乎在“/”启动时效果很好,但是当从“/MyController/MyView”启动时,我们需要修改应用程序包的加载位置——这就是这个问题的意义所在。 p>

【问题讨论】:

    标签: aurelia


    【解决方案1】:

    需要做两件事:

    • 在 'aurelia.json' 中设置 'build.targets.baseUrl: '../scripts''
    • 按照 Matthew 的建议使用“功能”。

    我认为其他人可能需要此设置,因此我在这里创建了一个存储库:https://github.com/larserikfinholt/aurelia-subfolder

    拉尔西

    【讨论】:

    • @Larsi 我查看了你的仓库,谢谢。你怎么知道添加data-feature="" 属性?我在任何地方都找不到记录。
    • @pholly “数据功能”名称可以是您选择的任何名称。您只需要在 main.js 中使用相同的名称
    • @Larsi 谢谢。我主要是问你在哪里找到该属性的文档。这似乎很重要,因为没有它,您将无法声明应用程序的起点。我在任何地方都找不到它的记录。
    • @Larsi 我明白了 - 您刚刚使用 data-feature 作为元素上的纯数据属性,并且在 main.js 文件中您使用 jQuery 获取了该属性。我认为它是 aurelia 框架的一部分。谢谢!
    【解决方案2】:

    使用“功能”

    在您的main.js aurelia 引导文件中,您可以这样写:

    ma​​in.js

    configure(aurelia) {
      aurelia.use
        .standardConfiguration()
        .feature('my-app');
    }
    

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

    my-app/index.js

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

    【讨论】:

    • 感谢您指出“功能”方向。我需要再做一步,所以我创建了描述我的方法的答案。
    • @MatthewJamesDavis 有没有办法创建两个单独的应用程序,在这种情况下,我可以看到所有东西都被捆绑到 app-bundle.js 中。我想要两个并行的应用程序服务于不同的上下文。
    猜你喜欢
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 2016-06-18
    • 2021-05-06
    • 2021-06-24
    • 1970-01-01
    相关资源
    最近更新 更多