Dart Webdev服务器和PHP文件

时间:2019-03-18 21:37:48

标签: dart phpstorm dart-html

我正在使用2.2版Google Dart SDK开发一个Web项目,并使用PhpStorm作为我的IDE。该项目旨在从一个index.php文件开始,该文件会做一些服务器端的初步工作,最后是对include('project1.html');的调用,该调用将html文件下载到客户端并包括<script defer src="project1.dart.js"></script>在末尾。我正在尝试找出开发的最佳设置。我已经在开发机器上安装了php,并将其包含在路径中。

我发现从终端调用webdev serve会将项目服务到http://localhost:8080,但显示Could not find web/index.html而不是project1.html的预期呈现。那么我猜想webdev服务器不能处理.php文件吗?

另一种方法是右键单击index.php文件,然后选择run in browser。这将打开一个Chrome页面,显示index.php文件的文本。因此,我猜还是没有处理PHP。

另一种方法是使用默认设置设置javascript调试配置,然后单击绿色的调试图标。这确实会产生正确的project1.index输出,并且index.php已正确处理。但是,我无法使用断点,并且Chrome开发者控制台中的错误引用了project1.dart.js目录中的build文件。

我尝试的另一种方法是使用Xampp服务器来提供文件。在这种情况下,我有很多项目,并在xampp/htdocs下设置了每个项目,即xampp/htdcos/project1等。在PhpStorm中,我使用以下方法设置了本地或挂载服务器:

  • 文件夹C:\xampp\htdocs\project1
  • 网络服务器根网址http://localhost/project1
  • 指向我项目的web子目录的本地路径,和
  • 部署和网络路径均设置为\

PhpStorm似乎可以正常运行,但是断点再次不起作用,并且调试错误消息未引用dart文件。

任何帮助都是最欢迎的。使用此设置,即从index.php文件开始,我尝试做的事情甚至可能吗?

**编辑**

按照以下建议,我在httpd-vhosts.conf文件中添加了以下内容:

<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/project1" ServerName localhost ProxyPreserveHost On ProxyRequests Off ProxyPassMatch ^/(.*\.js)$ http://localhost:8080/$1 </VirtualHost>

然后,我将.php文件和MySql保留在Xampp上,而JavaScript由webdev serve提供。

但是,我遇到了同样的问题,即PhpStorm或Chrome开发者工具源Dart文件中的断点不会触发,Chrome开发者工具控制台引用的是JavaScript文件而不是Dart源。

1 个答案:

答案 0 :(得分:2)

您需要在apache / php服务器上运行反向代理,并将js请求重定向到webdev服务器,然后您只需使用apache / php服务器和任何浏览器运行应用程序测试。在进行部署时,请使用dart2js生成js文件,并将整个构建目录复制到普通apache / php服务器(即无反向代理)可以读取的目录。