kentcdodds
kentcdodds

Reputation: 29081

Webstorm: "Cannot Resolve Directory"

This is starting to bug me and I'd either like it turned off or fixed. So Webstorm has a sweet feature in it's HTML parser that will attempt to resolve directories in strings that are supposed to reference a file in your project. For example:

two examples

Webstorm is correct. My front end code is all in /app but my server serves up files in app on the root, so in the web context /app is actually just /. As a side, this behavior also impacts my angular templates:

webstorm hates angular directive templateUrl

and my angular-ui routes (I imagine it would do that for regular angular routes as well).

webstorm hates angular routes templateUrl

Is there a way that I can change webstorm to treat /app as the root so this is a useful feature? If not, is there a way I can disable this? I tried going into the inspector, but couldn't find an option for it:

webstorm inspector

And no, it's not the XML one... I tried.

Help appreciated. Thanks...

Upvotes: 114

Views: 66278

Answers (7)

Niki Hosseini
Niki Hosseini

Reputation: 1

I had this Cannot Resolve Directory problem on Windows for PhpStorm.

Solution:

Just go to PhpStorm and open your project.
Then right-click on the reference folder and
click mark directory -> resource root

I hope this solves your problem:)

Upvotes: 0

dash-code
dash-code

Reputation: 26

It seems JetBrains IDE's recognize folders like "public' or 'www' as static serving folders and then ignore them as Ressource. When I setup a project with a bundler like vite E.g. there is no problem at all.

Upvotes: 0

Nitesh Dash
Nitesh Dash

Reputation: 21

In Jet Brains WebStorm Go to File-->Settings-->Left Panel Select Project-->Click on Derectories-->Middle Panel Select Resource Root-->add the folders/Directories under your Project for reference or In the Right Panel You Can see +Add Content Root choose the directories and the Apply-->OK

Upvotes: 2

ViBoNaCci
ViBoNaCci

Reputation: 480

I think this is what most people are looking for: not changing the content root, but adding a sub-folder as 'Resource Root'.

enter image description here

Upvotes: 7

geckob
geckob

Reputation: 8138

I had this problem on Mac and solved it by changing the directories properties.

  1. Open Preferences:

Webstorm > Preferences

  1. Go to Directories section in the Preferences

Project > Directories

  1. Add content root and Resource roots

Screenshot after adding the resources root

Upvotes: 25

JoachimR
JoachimR

Reputation: 5258

for people using IntelliJ Ultimate:

enter image description here

Upvotes: 6

thomastuts
thomastuts

Reputation: 3539

To make file references to a non-root folder in your project, you'll need to mark that directory as a Resource. To do this, go to Settings > Directories and select your asset root folder from the right-hand panel. Then mark it as Resource Root by clicking the button above the file browser.

From the Jetbrains documentation, a Resource Root enables WebStorm to complete relative paths to resources under the selected folder. This means that you should use Resource Root on a folder that holds all the resources you would like to refer to (e.g. styles, scripts, ...).

Upvotes: 215

Related Questions