【问题标题】:Angular2 unable to load boot.jsAngular2 无法加载 boot.js
【发布时间】:2016-09-29 09:46:33
【问题描述】:

当我直接从 file:///C:/wamp/www/ngProject/index.html 或 wamp 运行时,我无法通过 boot.js 文件:http://localhost/ngproject/

在开发模式下,它适用于npm-start,但它不应该适用于 WAMP 还是只运行 Index.html?

这是我的 system.js

  <script>
  System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    }
  });
  System.import('app/boot')
        .then(null, console.error.bind(console));
</script>

从 wamp 启动时 - 错误:无法加载脚本 http://localhost/app/boot.js 加载时出错 http://localhost/app/boot.js
启动 Index.html 时 - 错误:无法加载脚本文件:///app/boot.js 加载文件时出错:///app/boot.js

【问题讨论】:

  • 您是否尝试过检查控制台是否有错误..??
  • 是的,我编辑了错误的帖子。

标签: angular


【解决方案1】:

基本上你总是需要一个 http 服务器来运行一个 Angular 应用程序。

看看这个问题。关于为什么需要 http 服务器,有一些非常可靠的答案。

Why do I need a HTTP-server to run Angular 2?

问候,

【讨论】:

    【解决方案2】:

    尝试检查您的 boot.js 路径。从 wamp 开始时 - 错误:无法加载脚本 http://localhost/app/boot.js

    Error loading http://localhost/app/boot.js

    这里的路径好像不对,因为你的js文件位于

    @http://localhost/ngProject/app/boot.js

    这样的事情可能会帮助你

    对于 wamp 服务器试试这个

     System.config({
                baseURL: 'ngProject'
            });
    
    System.import('app/boot')
            .then(null, console.error.bind(console));
    

    【讨论】:

    • 路径是C:\wamp\www\ngProject\app\boot.js
    • 是的,localhost指向C:\wamp\www\文件夹对吗..?
    • Cris,Angular 必须托管在“服务器”上,因此请尝试将路径视为“whateverURL”/path/to/file,而不是它实际上在本地的方式。我这么说是因为服务器经常设置 MASK 本地文件系统,这在 Angular2 种子中经常出现。例如,我的种子将:/GIT/project/src/client/app 转换为:localhost
    【解决方案3】:

    因此,当您使用 npm-start 时,可能会为您的种子项目设置服务器。这将包含在种子包中运行的服务器的所有配置设置。

    如果您使用了我喜欢的angular2-seed,但它的选项可能会稍微复杂一些,设置在:tools/config/seed-config.ts

    它的作用是映射到您的根文件夹以加载文件。

    默认情况下,Wamp 将 localhost 映射到 c:\www,但您实际上希望它映射到 c:\www\ngProject

    这样想,

    当你加载/ngProject/index.html 它说:“好的,我需要加载位于 /app/boot.js 的 boot.js”

    但它确实在 /ngProject/app/boot.js 并且失败了

    您可以在所有配置中更改系统以从 /ngProject 加载,或者我建议调整您的 wamp 设置。

    来自this SO Answer:的说明

    对于 Windows 上的 wamp 2.5,请使用文本编辑器,例如notepad++ 编辑 c:\wamp\bin\apache\apache2.4.9\conf\httpd.conf

    1. 将 DocumentRoot "c:/wamp/www" 更改为 DocumentRoot "c:/my/new/path" (注意斜线方向)。这将更改文件的位置 从(〜第230行)提供服务。
    2. 更改为 (注意斜线方向)。这适用 从旧目录到新目录的权限(~第 252 行)。

    另一件事是,许多种子还具有“生产”构建,它将自动转换为相对/基本根路径结构。这也是我要检查的东西..

    【讨论】:

    • 我尝试更改 DocumentRoot "c:/wamp/www/ngProject" &lt;Directory "c:/wamp/www/ngProject"&gt; 甚至 DocumentRoot "c:/wamp/www/ngProject/app" &lt;Directory "c:/wamp/www/ngProject"&gt; 但没有效果。甚至我的 php 项目也照常从 www 文件夹工作。
    • 我读到了其他方法(如 Angular2 WebpackStarter 或 Angular2-Seed ,可以将所有 js 转换为 1 并缩小它,但我不知道如何使它工作......跨度>
    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    相关资源
    最近更新 更多