2016-05-10 7 views
1

Situation "Verzeichnis kann nicht lösen": ich die folgende PHP-Projektstruktur haben:IntelliJ IDEA/PhpStorm für PHP-Projekt

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

In einer Vorlage habe ich eine <img src="images/challenges/week3-food.jpg" />.

Problem: IDEA markiert "Bilder" mit einer Warnung mit der Aufschrift "Kann Verzeichnis Bilder 'nicht auflösen".

Herstellung: Wenn ich Alt+Enter drücken, "Create Directory Bilder", es entsteht ein "Bilder" -Ordner unter meinem /views Ordner.

Mein Ziel: Ich möchte IDEA verstehen, dass meine Projektwurzel meine Webroot ist, und finde meine Dateien dort. Grundsätzlich möchte ich die Warnung weg und die Code-Vervollständigung für meine Pfade funktionieren lassen.

Was ich versucht habe: Ich ging zu und setzen meine Projektwurzel als Ressource Root, ohne Glück.

Screenshot:http://screencast.com/t/33mV4umA

Alle Ratschläge, wie dies zu erreichen? Ich habe dieses Problem bei mehreren anderen Projekten gehabt.

+0

Ist die Ordnerstruktur in 'public' oder' resources' aufgelistet? –

+0

Sorry, mein Fehler, ich benutze nur Laravels Blade Templating Engine, ansonsten ist es Vanille PHP. Was ich aufgelistet habe, ist das Projekt root. Ich habe meine Frage entsprechend korrigiert. –

+0

Ich habe eine Antwort gepostet. Grundsätzlich sollten Sie vor dem Pfad ein '/' hinzufügen. –

Antwort

1

In dem Screenshot Sie tun images/challenges/week3-food.jpg, aber sollte /images/challenges/week3-food.jpg (der Schrägstrich am Anfang des Dateipfads) sein.

So wäre es

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

PhpStorm sollte dies lesen können, wie es im images Verzeichnis des Stammordner sein sollte.

+0

Das Umschalten auf absolute Referenzen, wie Sie es vorgeschlagen haben, würde mich dazu zwingen, die Site im Server-Root auszuführen. Aber ich muss es in einem Unterordner ('example.com/photo-challenge /') bereitstellen, so dass es für mich keine Option ist. Irgendein anderer Vorschlag, der den Code nicht ändert? –

+0

Sie können '' tun, wenn Sie relative Pfade verwenden möchten. Sie können immer eine Hilfsmethode erstellen, genau wie Laravels eigene 'url() 'Hilfsmethode, die einen Parameter annehmen und die URL mit einem Basispfad zurückgeben kann. Sie würden also nur etwas wie "url (images/yourimage)" machen. –

+0

'' funktioniert eindeutig nicht, weil es der falsche Pfad relativ zu 'index.php' ist. 'url()' könnte helfen, ja, aber ich würde Laravel lieber nicht in mein Projekt nur dafür aufnehmen. Gibt es wirklich keine Möglichkeit, IntelliJ über meinen Ressourcenstamm zu informieren? –