2016-09-14 13 views
0

Когда я создаю/запускаю свой сайт под Visual Studio/IIS Express, мой сайт работает нормально, нет необычных запросов, 404 и т. Д.Почему запросы, сделанные для файлов машинописных файлов RxJs, только когда мой сайт размещен в IIS?

Однако, когда я публикую свой сайт в IIS и пытаюсь запустить его, меня приветствуют с кучей запросов на машинописные файлы (.ts), в основном связанных с RxJs.

Например, запросы сделаны:

http://www.example.com/lib/reflect-metadata/Reflect.ts

http://www.example.com/lib/rxjs/src/Subject.ts

http://www.example.com/lib/rxjs/src/Observable.ts

http://www.example.com/lib/rxjs/src/util/toSubscriber.ts

... и многое другое

Почему это происходит? Папка lib на моем сайте IIS является точной копией папки lib, используемой IIS Express. Одна вещь, которую я должен отметить, это то, что моя папка с образцами, tsconfig.json и typings.json не опубликована. Должны ли они быть?

Package.json:

"dependencies": { 
    "@angular/common": "2.0.0-rc.6", 
    "@angular/compiler": "2.0.0-rc.6", 
    "@angular/compiler-cli": "0.6.0", 
    "@angular/core": "2.0.0-rc.6", 
    "@angular/forms": "2.0.0-rc.6", 
    "@angular/http": "2.0.0-rc.6", 
    "@angular/platform-browser": "2.0.0-rc.6", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.6", 
    "@angular/router": "3.0.0-rc.2", 
    "@angular/upgrade": "2.0.0-rc.6", 
    "core-js": "^2.4.1", 
    "reflect-metadata": "^0.1.3", 
    "rxjs": "5.0.0-beta.11", 
    "systemjs": "0.19.27", 
    "zone.js": "^0.6.17", 
    "ts-loader": "^0.8.2", 
    "html-webpack-plugin": "^2.22.0", 
    "jquery": "^3.1.0", 
    "bootstrap": "^3.3.7" 
    }, 
    "devDependencies": { 
    "concurrently": "^2.2.0", 
    "lite-server": "^2.2.0", 
    "css-loader": "^0.23.1", 
    "extract-text-webpack-plugin": "^1.0.1", 
    "file-loader": "^0.9.0", 
    "image-webpack-loader": "^2.0.0", 
    "source-map-loader": "^0.1.5", 
    "style-loader": "^0.13.1", 
    "typings": "^1.3.3", 
    "webpack": "^1.13.1", 
    "typescript": "^1.8.10", 
    "webpack-dev-server": "^1.14.1", 
    "webpack-merge": "^0.14.0" 
    } 

systemjs.config.js:

/** 
    * System configuration for Angular 2 samples 
    * Adjust as necessary for your application needs. 
    */ 
    (function (global) { 

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

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

     var ngPackageNames = [ 
      'common', 
      'compiler', 
      'core', 
      'forms', 
      'http', 
      'platform-browser', 
      'platform-browser-dynamic', 
      'router', 
      'upgrade' 
     ]; 

     // Individual files (~300 requests): 
     function packIndex(pkgName) { 
      packages['@angular/' + pkgName] = { main: 'index.js', defaultExtension: 'js' }; 
     } 

     // Bundled (~40 requests): 
     function packUmd(pkgName) { 
      packages['@angular/' + pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' }; 
     } 

     // Most environments should use UMD; some (Karma) need the individual index files 
     var setPackageConfig = System.packageWithIndex ? packIndex : packUmd; 

     //setPackageConfig = packIndex; 

     // Add package entries for angular packages 
     ngPackageNames.forEach(setPackageConfig); 

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

     System.config(config); 

    })(this); 

index.html:

<!DOCTYPE html> 
    <html> 
    <head> 
     <base href="/"> 
     <title>Sams Blog - Debug</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <script src="lib/jquery/dist/jquery.min.js"></script> 
     <!-- 1. Load libraries --> 
     <!-- Polyfill(s) for older browsers --> 
     <script src="lib/core-js/client/shim.min.js"></script> 
     <script src="lib/zone.js/dist/zone.js"></script> 
     <script src="lib/reflect-metadata/Reflect.js"></script> 
     <script src="lib/systemjs/dist/system.src.js"></script> 
     <script src="js/site.js"></script> 
     <link href="css/site.css" rel="stylesheet" /> 
     <!--<script src="css/bootstrap/js/carousel.js"></script>--> 
     <script src="lib/bootstrap/dist/js/bootstrap.min.js"></script> 
     <!-- 2. Configure SystemJS --> 
     <script src="systemjs.config.js"></script> 
     <script> 
      System.import('app').catch(function (err) { console.error(err); }); 
     </script> 
    </head> 
    <body> 
     <my-app>Loading App...</my-app> 
    </body> 
    </html> 
+0

Свяжите свои сценарии с rollupjs перед публикацией, так что у вас будет только один запрос и вы можете избавиться от systemjs. Используйте systemjs только для разработки. –

+0

Спасибо - я действительно использую webpack, и у меня есть аналогичная проблема ... кроме webpack возникает ошибка с zone.js. Я опубликовал проблему с systemjs только потому, что отдельные запросы легче устранить (я думаю), надеюсь, я пойду в корень проблемы. – Sam

ответ

0

Оказывается, что на этот раз это не мое было Плохо. Я перешел на угловой rc7 и поднял выпуск в нескольких других пакетах и ​​теперь работает.

"dependencies": { 
    "@angular/common": "2.0.0-rc.7", 
    "@angular/compiler": "2.0.0-rc.7", 
    "@angular/compiler-cli": "0.6.0", 
    "@angular/core": "2.0.0-rc.7", 
    "@angular/forms": "2.0.0-rc.7", 
    "@angular/http": "2.0.0-rc.7", 
    "@angular/platform-browser": "2.0.0-rc.7", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.7", 
    "@angular/router": "3.0.0-rc.3", 
    "core-js": "^2.4.1", 
    "reflect-metadata": "^0.1.3", 
    "rxjs": "5.0.0-beta.12", 
    "systemjs": "0.19.27", 
    "zone.js": "^0.6.17", 
    "ts-loader": "^0.8.2", 
    "html-webpack-plugin": "^2.22.0", 
    "jquery": "^3.1.0", 
    "bootstrap": "^3.3.7" 
    }, 
    "devDependencies": { 
    "angular2-template-loader": "^0.4.0", 
    "awesome-typescript-loader": "^2.2.4", 
    "concurrently": "^2.2.0", 
    "lite-server": "^2.2.0", 
    "css-loader": "^0.23.1", 
    "extract-text-webpack-plugin": "^1.0.1", 
    "file-loader": "^0.9.0", 
    "image-webpack-loader": "^2.0.0", 
    "source-map-loader": "^0.1.5", 
    "style-loader": "^0.13.1", 
    "typings": "^1.3.3", 
    "webpack": "^1.13.1", 
    "typescript": "^2.0.2", 
    "webpack-dev-server": "^1.14.1", 
    "webpack-merge": "^0.14.0" 
    }