【问题标题】:Run Dart WebApp on Apache Server在 Apache 服务器上运行 Dart WebApp
【发布时间】:2014-08-31 13:34:27
【问题描述】:

我想在 Apache 服务器上提供一个 Dart 应用程序。我加了一行

application/dart dart

到 Apache 配置中的 mime.type 文件。我仍然收到错误

Resource interpreted as Script but transferred with MIME type text/plain:    "http://localhost/~d022051/mastermind/web/mm-game.dart".

另一个问题是包目录的链接。我不想在服务器的文档目录中有符号链接。是否有一种聪明的方法可以将所需的包复制到正确的版本中?

【问题讨论】:

    标签: apache dart dart-polymer dart-pub


    【解决方案1】:

    此消息与 Apache 无关。

    我使用 Apache 已经有一段时间了,但据我所知,您不需要特定的设置来为使用 Apache 的 Dart 客户端应用程序提供服务。它们就像任何其他静态 HTML、CSS、JavaScript 或图像文件一样。

    您收到此消息是因为入口页面 (index.html) 包含 Dart 脚本的脚本标记。在你运行pub build 之后,构建输出中(还没有) Dart 脚本(当 Chrome 支持 Dart 并且pub build 也生成 Dart 输出时,这将改变)。

    当浏览器发现这个(目前是多余的)Dart 脚本标签时,它会产生这个输出。如果您想删除此消息,只需从您的your_app_package/build/web/index.html 文件中的 HTML 页面中删除脚本标记即可。

    编辑

    transformers:
    - $dart2js:
        'minify': true
        commandLineOptions: ['--output-type=dart']
    

        commandLineOptions: ['--output-type=dart', '--categories=Server']
    

    我还没有测试过这个 categories 参数是否对dart2dart 也有影响。

    编辑结束

    EDIT2

    还有输出类型dart-multi,它为每个输入库创建一个输出文件。 详情请见https://code.google.com/p/dart/issues/detail?id=21616#c9

    EDIT2 结束

    【讨论】:

    • 您好,dart.js 文件只是问题的一部分。真正的问题是获得正确的包、正确的版本和正确的名称、正确的内部结构和对服务器 docs 目录的正确权限。没有任何东西可以打包 dart 源以在服务器上交付吗?
    • 我不知道你的权限是什么意思,但通常你只需要在运行pub build之后将build/web目录(或只是它的内容)复制到docs目录。
    • 我说的是在 Dartium 中运行 dart 脚本。 build 目录下的包只包含 js 文件,没有 dart.项目根目录中的包是指向 .pub-cache 的链接。那里的软件包没有为任何用户设置 x 位。并且这些包在 lib 目录中有 dart 文件,这不是使用的 url 的一部分。
    • 你应该提到这一点。 Dartium 不适用于生产,因此这只能是开发设置。你为什么需要这个?我猜你需要将 Dart 相关请求转发/委托给pub serve,而不是一个静态目录。
    • @Gregor --output-type=dart 可能已被弃用。如果它不起作用,您可以创建一个虚拟转换器,它只是通过带有 .dart 扩展名的文件。
    【解决方案2】:

    将以下行添加到您的包的 pubspec.yaml 文件中(感谢 Günter,他指出了这一点):

    transformers:
    - $dart2js:
        'minify': true
        commandLineOptions: ['--output-type=dart']
    

    然后使用选项 --mode=debug 运行 pub build。

    这会产生一个“可运行”的 Dart 应用程序,其中包含 dart 源和所需的包。然后可以将构建目录复制到 Web 服务器可见的位置。在 Dartium 浏览器中加载相应的 URL 时,应用程序将启动。

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多