Webstorm: "无法解析目录"

111
这个问题开始困扰我了,我想要它关闭或者修复。WebStorm 在其 HTML 解析器中有一个很好的功能,它会尝试解决字符串中的目录引用问题,这些字符串应该引用项目中的文件。例如:
WebStorm 是正确的。我的前端代码都在 /app 中,但我的服务器在根目录上提供服务,所以在 Web 上下文中,/app 实际上只是 /。另外,这种行为也会影响我的 Angular 模板和 angular-ui 路由(我想对于常规的 Angular 路由也是如此)。
是否有一种方法可以更改 WebStorm 的处理方式,将 /app 视为根目录,使这成为一个有用的功能?如果没有,那么有没有一种方法可以禁用它?我尝试进入检查器,但找不到相关选项:
不,这不是 XML 一个...我已经尝试过了。
谢谢您的帮助。
5个回答

209
为了在项目中引用非根目录的文件夹,您需要将该目录标记为“Resource”(资源)。要做到这一点,请转到“设置”>“目录”,并从右侧面板中选择您的资产根目录。然后通过单击文件浏览器上方的按钮将其标记为资源根目录。
据Jetbrains文档介绍,资源根目录使WebStorm能够完整相对路径查找所选文件夹下的资源。这意味着您应该在保存所有想要引用的资源(例如样式、脚本等)的文件夹上使用资源根目录。

2
我有同样的问题:“无法解析文件”,“无法解析目录”看起来WebStorm、phpStrom已经存在这个问题很长时间了,有数百个线程在问同样的问题,似乎没有真正清晰的答案,似乎可以追溯到2011年。最常见的回复是:
  • 需要将该目录标记为资源根目录。
  • 需要在设置>php>服务器中映射目录/文件
  • 禁用检查。 <这个让我笑了....就像关闭提示警告一样。
- rudy
3
对我而言,我将我的“css”和“js”文件夹标记为资源根目录。但我继续收到错误通知。它们都位于“www”目录下。将“www”文件夹标记为资源根目录最终消除了通知。因此,如果您的图像、js和css都存储在一个目录下,您可以将它们的父目录标记为资源根目录。 - b01
在Mac上的Webstorm 9.x中,它位于Webstorm->首选项->'您当前加载的项目名称'->目录下。 - ra170
我曾经遇到过完全相同的情况,并正确标记了目录。但是无论如何,代码检查器都将它们标记为“未找到”。重新启动PHPStorm(版本9)解决了这个问题。也许重新打开项目就足够了。 - Markus Zeller
值得一提的是,在PhpStorm 10(Mac)中标记资源根目录可以立即修复错误,但显然您的情况可能会有所不同。 - William Turrell
显示剩余2条评论

23

我在Mac上遇到了这个问题,通过更改目录属性解决了它。

  1. 打开设置:

Webstorm > 首选项

  1. 在首选项中转到目录部分

项目 > 目录

  1. 添加内容根和资源根

添加资源根后的截图


这个过程无法解决我的路径问题。我一直在使用类似"../../src/style.scss"的长路径来导入scss文件。使用上述方法,Webstorm可以理解并解决路径错误。但是,在发布我的项目构建(在Angular 7中)时,我收到一个错误,说找不到scss文件。 - akgupta

6

对于使用IntelliJ Ultimate的人:

在此输入图片描述


3
嘿!我按照这个方法操作了,但没有成功(我仍然收到令人讨厌的“无法解析目录”的警告)。除了将目录标记为Sources以外,我还需要做些什么吗? - Madara's Ghost
假设你的目录结构如下:folder1/folder2/..,其中folder2包含了所有资源。你需要将folder1标记为“源”(Source),将folder2标记为“资源”(Resource)。参考链接 - Rothin Sen

5
我认为大多数人都在寻找的是:不改变内容根目录,而是将子文件夹添加为“资源根目录”。

enter image description here


谢谢,这解决了我的问题。 - Psybot

2
在Jet Brains WebStorm中,打开文件-->设置-->左侧面板选择项目-->点击目录-->中间面板选择资源根目录-->添加项目下的文件夹/目录以供参考。或者,在右侧面板中,您可以看到+添加内容根目录,选择目录并点击应用-->确定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接