【问题标题】:IntelliJ IDEA / PhpStorm "Cannot resolve directory" for PHP project用于 PHP 项目的 IntelliJ IDEA / PhpStorm“无法解析目录”
【发布时间】:2016-05-10 18:38:09
【问题描述】:

情况:我的PHP项目结构如下:

/images    (contains images)
/views     (contains .blade.php template files)
/vendor
composer.json
index.php

在模板中我有一个<img src="images/challenges/week3-food.jpg" />

问题: IDEA 用警告标记“图像”,说“无法解析目录'图像'”。

详细说明:如果我按Alt+Enter,“创建目录图像”,它会在我的/views 文件夹下创建一个“图像”文件夹。

我的目标:我希望 IDEA 了解我的项目根目录是我的 webroot,并在那里找到我的文件。基本上,我希望警告消失并为我的路径工作。

我尝试了什么:我去了File --> Project Structure --> Modules并将我的项目根设置为资源根,但没有运气。

截图: http://screencast.com/t/33mV4umA

关于如何实现这一目标的任何建议?我在其他几个项目中遇到过这个问题。

【问题讨论】:

  • 您在publicresources中列出的文件夹结构?
  • 对不起,我的错误,我只使用 Laravel 的 Blade 模板引擎,否则它是 vanilla PHP。我列出的是项目根目录。我已相应地纠正了我的问题。
  • 我已经发布了答案。基本上,您应该在路径前添加/

标签: php intellij-idea phpstorm


【解决方案1】:

在屏幕截图中,您使用的是images/challenges/week3-food.jpg,但应该是/images/challenges/week3-food.jpg(文件路径开头的斜线)。

原来如此

<img src="/images/challenges/week3-food.jpg" />

PHPStorm 应该能够读取它,因为它应该位于根文件夹的 images 目录中。

【讨论】:

  • 按照您的建议切换到绝对引用会将我绑定到在服务器根目录中运行该站点。但我需要将它部署在子文件夹 (example.com/photo-challenge/) 中,所以它不是我的选择。还有其他不涉及更改代码的建议吗?
  • 如果你想使用相对路径,你可以&lt;img src="../../images/challenges/week3-food.jpg" /&gt;。你总是可以像 Laravel 自己的 url() 帮助方法一样创建一个帮助方法,它可以接受一个参数并返回带有基本路径的 URL。所以你只会做类似url(images/yourimage)的事情。
  • &lt;img src="../../images/challenges/week3-food.jpg" /&gt; 显然不起作用,因为它是相对于index.php 的错误路径。 url() 可能会有所帮助,是的,但我宁愿不为此将 Laravel 包含在我的项目中。真的没有办法告诉 IntelliJ 我的资源根吗?
  • 使用url(),您不必为此使用 Laravel。如果您使用 composer 自动加载包含url() 的帮助文件,您可以编写自己的函数,所有刀片文件都可以访问该函数。只要项目根文件夹去,你在新建项目的时候就已经指定了你的项目根文件夹。
  • 谢谢泰勒;您的回答没有给我解决方案,但它解决了我的真正问题。我的问题基本上是这个问题的重复:stackoverflow.com/questions/31317048/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
  • 2010-10-06
  • 2014-08-27
  • 2013-10-07
  • 2018-03-06
  • 2014-09-16
相关资源
最近更新 更多