【问题标题】:I'm getting `GET http://localhost:4567/my_app.dart.js 404 (Not Found) ` in Chrome, but works fine in Dartium我在 Chrome 中得到 `GET http://localhost:4567/my_app.dart.js 404 (Not Found) `,但在 Dartium 中工作正常
【发布时间】:2013-11-15 21:58:16
【问题描述】:

我正在尝试让我的虚拟 Dart webapp 在浏览器中运行。这是我的html页面的代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8'>
    <!-- Always force latest IE rendering engine or request Chrome Frame -->
    <meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
  </head>
  <body>
    <div id='button'>hello world</div>
  </body>
  <script src='my_app.dart' type='application/dart'></script>
  <script src='packages/browser/dart.js'></script>
</html>

这就是我在尝试打开 js 控制台时得到的结果:

GET http://localhost:4567/my_app.dart.js 404 (Not Found) 

(我在本地服务器上运行它,因此 url - 如果只是打开一个 html 文件,则会出现相同的错误)。

如果我在 Dartium 中打开相同的 url,webapp 就可以工作。所以我想问题是dart.js 没有按预期工作。可能是什么问题?

【问题讨论】:

  • 问题是在非 Dartium 浏览器中运行 Dart 程序需要先编译成 Javascript(见 js 文件扩展名)。但是开发服务器应该自动完成 - 但您也可以手动完成。你用的是什么开发服务器?

标签: dart dartium


【解决方案1】:

packages/browser/dart.js 是一个引导脚本,用于检查 Dart VM 在您的浏览器上是否可用。如果 Dart 虚拟机可用,则直接执行您的 dart 脚本,否则 packages/browser/dart.js 会在文档中附加一个新的 js 脚本,其 url 指向与您的 dart 文件同名但附加了 .js 的文件。根据您的工作方式,您可能需要使用 dart2js 手动生成此 JS 文件:

dart2js --out=my_app.dart.js my_app.dart

【讨论】:

  • 哦,这就解释了。因此,每次我重新加载页面时,Dart 都不会从我的 .dart 文件中即时生成 javascript,对吧?
  • 这取决于您的工作方式。如果你使用 Dart 编辑器,“Run as Javascript”应该会自动完成。
【解决方案2】:

尝试“以 Java 脚本运行”,它应该会生成其他文件,例如“my_app.dart.js”

【讨论】:

    猜你喜欢
    • 2019-01-13
    • 2021-11-20
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 2020-09-25
    • 2021-12-17
    相关资源
    最近更新 更多