Ich habe begonnen, eine Website mit Symfony2 zu erstellen, und ich hatte ein kleines Quäntchen an Ressourcen.
Das Symfony2 Buch sagt, dass jede Ressource-Datei in einem Bundle sein muss, aber was ist mit den wichtigsten Bildern, .js und .css Dateien, die ich in der Datei base.html.twig auf jeder Seite verwende?
>Soll ich ein CoreBundle oder etwas Ähnliches machen, nur für diese Dateien, oder sollte ich diese in den app \ Resources-Ordner (oder direkt in den Web-Ordner, vielleicht) legen? Wenn ich den Ordner app \ Resources für diese verwenden kann, wie kann ich diese Dateien aus der Vorlage referenzieren?
Ein Bundle nur dafür zu erstellen, scheint ein wenig unnötig zu sein, und die Asset-URLs für diese Dateien sind meiner Meinung nach ebenfalls hässlich (z. B. "/bundles/projectcore/images/logo.jpg").
Was ist die beste Vorgehensweise hier?
Ich hatte Situationen, in denen ich alle Dateien in / web (d. h. / web / js) und andere, in denen ich sie gespeichert habe, in einem "Assets" -Bündel aufbewahrte.
Wenn Sie ein Paket entwickeln, das in zahlreichen Projekten wiederverwendet wird, ist es sinnvoll, die Assets in diesem Paket zu speichern. Ich denke, Sie würden diese Assets dann über die Befehlszeile im Webordner veröffentlichen / installieren. Angenommen, Sie haben einen BlogBundle, der eine bestimmte CSS-Datei benötigt. Sie würden das CSS in diesem Bundle speichern. Wenn Sie das nächste Mal BlogBundle für ein Projekt verwenden, können Sie das CSS problemlos wiederverwenden.
Wie bei vielen anderen Dingen mit Symfony2 spielt auch Ihre persönliche Präferenz eine große Rolle bei diesen Entscheidungen. Ich empfehle Ihnen, konsistent zu bleiben, wenn Sie Ihre Vermögenswerte speichern. Die Verwaltung von Assets, die an drei verschiedenen Standorten verteilt sind (Web, AssetsBundle, andere Bundles), könnte große Kopfschmerzen bereiten. Wählen Sie einen Ort und versuchen Sie, konsistent zu bleiben.
Wie beim Zugriff auf Assets aus der App / Ressourcen ... können Sie möglicherweise Assetic dafür verwenden. Ich bin nicht sehr damit vertraut, aber ich glaube, dass Sie Assets von überall in Ihrem Projekt laden können. Ich würde eigentlich empfehlen, sich den Core-Code von Assetic anzusehen (in vendor\Assetic
), anstatt den Symfony2-Assistenten von Ascendic zu verwenden, weil Sie dadurch eine bessere Vorstellung davon bekommen, was möglich ist.
Wir haben einen symlink in Linux verwendet, so dass / web / bundles / projectcore / images auf src / Bundle / Resources / public / images
zeigtMit Subversion in Netbeans funktioniert es. Das Schöne daran ist, dass Ihre gesamte Anwendung im Ordner / src / Bundle verbleibt