我正在使用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源。
答案 0 :(得分:2)
您需要在apache / php服务器上运行反向代理,并将js请求重定向到webdev服务器,然后您只需使用apache / php服务器和任何浏览器运行应用程序测试。在进行部署时,请使用dart2js生成js文件,并将整个构建目录复制到普通apache / php服务器(即无反向代理)可以读取的目录。