在Apache Server上运行Dart WebApp

时间:2014-07-10 08:46:06

标签: apache dart dart-polymer dart-pub

我想在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".

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

2 个答案:

答案 0 :(得分:3)

此消息与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']

我还没有测试过这个类别参数是否也会在dart2dart中生效。

编辑结束

<强> EDIT2

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

EDIT2 END

答案 1 :(得分:0)

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

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

然后使用选项--mode = debug。

运行pub build

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