1

当我尝试在 Eclipse 中创建和发布静态 Web 项目时,我得到:“复制文件 index.html 时出错:没有这样的文件或目录”

我的环境:SuSE 12.2、Eclipse Indigo Release 2、Apache2 2.2.22、

这是我为创建项目所做的:

1) 创建新服务器

  • 基本,HTTP 服务器
  • 发布目录:/srv/www/htdocs
  • 启用发布到此服务器:true

2) 创建项目

  • 新建 -> 静态 Web 项目
  • 项目名称:Simplepage
  • 目标运行时:HTTP 服务器(从 1 开始)
  • 默认配置
  • 内容根:Simplepage
  • Web 内容文件夹名称:WebContent

3)创建非常简单的页面

  • 创建新的 HTML 文件
  • 父文件夹:Simplepage/WebContent
  • 名称:index.html
  • 内容:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=${encoding}"> <title>Insert title here</title> </head> <body> Test </body> </html>

4) 启动项目

  • 右键单击项目名称 -> 运行方式 -> 在服务器上运行

在这里,我收到了上面提到的错误消息。此时/srv/www/htdocs/Simplepage创建了一个新文件夹,但没有内容。

后来我用下面的配置做了一个测试:

  • 将发布目录更改为:“/srv/www/htdocs/XY”

启动项目给出错误:“禁止访问!您无权访问请求的目录...”

此时创建了一个新目录:/srv/www/htdocs/XY/Simplepage包含文件index.html.

eclipse 中的窗口显示路径http://localhost/Simplepage/。当我手动将http://localhost/XY/Simplepage/其更改为新创建的页面时,会显示。

我不明白这种行为。有人可以解释一下吗?

4

1 回答 1

1

您已经在您的家庭计算机上安装了 Apache2 服务器,发布目录为 /srv/www

请注意,Apache2 在它自己的用户上运行(在我的 Ubuntu 上它是 www-data)。Apache 的发布目录 /srv/www 通常归 Apache 的用户所有。

您还将 Eclipse 的 HTTP 服务器定向到同一目录。请注意,此服务器与 Apache 不同;它由 Eclipse 在其腹部运行,并且通常在 Apache 的不同端口上运行,以避免端口冲突。我认为该服务器运行在 Eclipse 运行的同一用户上,即您的家庭计算机上的常规用户。

我认为您收到的错误消息是权限不匹配:Eclipse 无法在 Apache 用户拥有的目录中发布。

解决方案不是尝试使用 Apache 的目录,而是使用 Eclipse 的默认目录。

我在这里更详细地解释了这一点:Eclipse Web (http) servers: Debugging and publishing http files in Eclipse

我确实使用了 Eclipse 的 HTTP 预览服务器和 Apache2:

  • Eclipse 的 HTTP 预览服务器,用于我在 Eclipse 中处理的文件,以及
  • Apache2 运行我的 Wordpress 站点的本地主机副本。

当我在 Eclipse 中处理的文件成熟时,我会手动将它们作为帖子或页面传输到 Wordpress。

于 2015-04-14T09:54:16.140 回答