【问题标题】:Weird DartEditor behavior / bug?奇怪的 DartEditor 行为/错误?
【发布时间】:2015-07-27 12:31:11
【问题描述】:

我正在使用 dart 开发一个小网站。 我有一个用于服务器的项目,另一个用于客户端应用程序(见下图)

在服务器应用程序中,我像这样从客户端项目中为客户端应用程序提供服务

runServer() {
  var staticHandler = createStaticHandler(r"C:\Users\Lukasz\dart\linkShepherdClient\web\", defaultDocument: 'linkShepherd.html',serveFilesOutsidePath: true);
  var handler = new Cascade()
                      .add(staticHandler)
                      .add(routes.handler)
                      .handler;
  io.serve(handler, InternetAddress.LOOPBACK_IP_V4, 8080).then((server) {
    print('Listening on port 8080');
  }).catchError((error) => print(error));   
}

一切正常。但是现在我在客户端项目中所做的更改不再影响服务器服务的站点(站点仍在加载,只是一个旧版本,样式略有不同,但最重要的是还有一个旧的 .dart 脚本文件)。当我直接从它的项目运行客户端时,一切都是最新的。 打开和关闭编辑器没有帮助。 dart 编辑器是否真的在创建某种缓存?

【问题讨论】:

    标签: dart dart-editor


    【解决方案1】:

    缓存可能来自dart:io。无论如何,您可能应该启动一个 pub serve 实例并在开发期间重定向到该实例。这样任何变压器(Angular,Polymer,...)也可以应用。 部署后,服务器应为客户端的构建输出提供服务。

    【讨论】:

    • 您能否详细说明您的答案。我在菜单中找不到它。一个对我有用的简单解决方案是标记“运行>>始终运行上次启动”
    • 我不明白,您在菜单中找不到什么(它)?我的回答建议不要直接从磁盘向浏览器提供 Dart 源,而是应该由 pub serve 提供 Dart 源(您可以从命令行手动启动实例,或者从您的服务器启动配置中的自定义 Web 服务器中启动实例)和然后在您的自定义 Web 服务器中将向 Dart 源的请求转发到此 pub serve 实例。在生产中,您的服务器应该为您的客户端提供 dart2js-output 而不是当然。
    • 抱歉,回答延迟。我的意思是,我在菜单中找不到pub serve。我想我现在知道您的意思是“运行”菜单中的“管理启动”工具。不幸的是,我仍然不知道如何设置它以应用您的解决方案。
    • 也许您需要在服务器项目中运行pub upgrade 以获取更改。你试过吗?
    • 我检查了你的项目。我在 GitHub 上做了两个 cmets,我假设你收到了通知。你的bin/linkShepherdServer.dart 文件直接为 Dart 源提供服务。在这种情况下,只有浏览器可以阻止提供更新的内容。可以试试Ctrl+F5刷新页面,强制浏览器重新加载吗?
    猜你喜欢
    • 2012-11-26
    • 2015-12-05
    • 2020-09-02
    • 2012-12-27
    • 1970-01-01
    • 2012-10-08
    • 2014-10-06
    • 2018-10-19
    • 1970-01-01
    相关资源
    最近更新 更多