简体   繁体   中英

SystemJS Angular2 boot loader not found

When I try to import the boot.js from a layout page, I keep getting a 404 error. 在此处输入图片说明

Here is the code I am using to import it:

<!-- Configure SystemJS -->
<script src="/appScripts/config.js"></script>
<script>
        System.import('/appScripts/boot')
              .then(null, console.error.bind(console));
</script>

Here is my folder structure: 在此处输入图片说明

Everything works fine when I use index.html (seen in wwwroot), but not when I try from /views/shared/_layout.cshtml

Here is my config.js

(function (global) {

    // map tells the System loader where to look for things
    var map = {
        'app': 'appScripts', // 'dist',
        'rxjs': 'libs/rxjs',
        'angular2-in-memory-web-api': 'libs/angular2-in-memory-web-api',
        '@angular': 'libs/@angular'
    };

    // packages tells the System loader how to load when no filename and/or no extension
    var packages = {
        'app': { main: 'boot.js', defaultExtension: 'js' },
        'rxjs': { defaultExtension: 'js' },
        'angular2-in-memory-web-api': { defaultExtension: 'js' },
    };

    var packageNames = [
      '@angular/common',
      '@angular/compiler',
      '@angular/core',
      '@angular/http',
      '@angular/platform-browser',
      '@angular/platform-browser-dynamic',
      '@angular/router',
      '@angular/router-deprecated',
      '@angular/testing',
      '@angular/upgrade',
    ];

    // add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
    packageNames.forEach(function (pkgName) {
        packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
    });

    var config = {
        map: map,
        packages: packages
    }

    // filterSystemConfig - index.html's chance to modify config before we register it.
    if (global.filterSystemConfig) { global.filterSystemConfig(config); }

    System.config(config);

})(this);   

Thank you very much for your help and please let me know if you need more information.

I thought I had tried this, but it is hard to keep track of it all. Here is how I solved this. Notice the baseURL line.

<!-- Configure SystemJS -->
<script>System.config({ baseURL: '/' });</script>
<script src="/appScripts/config.js"></script>
<script>
    System.import('appScripts/boot').catch(console.log.bind(console));
</script>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM