[JAVA] Wenn die Submodul-Assets nicht im Play Framework gefunden werden

TL; DR

Wenn Sie den Asset-Pfad in Play Framework nicht kennen sbt "show playAllAssets" Ist super praktisch

sizer@sizle:~/hello-play-assets (master *+>)
$ sbt "show playAllAssets"
[info] Loading global plugins from /Users/sizer/.sbt/1.0/plugins
[info] Loading settings for project hello-play-assets-build from plugins.sbt ...
[info] Loading project definition from /Users/sizer/hello-play-assets/project
[info] Loading settings for project root from build.sbt ...
[info] Loading settings for project child from build.sbt ...
[info] Set current project to hello-play-assets (in build file:/Users/sizer/hello-play-assets/)
[info] child / playAllAssets
[info] 	List((public/,/Users/sizer/hello-play-assets/child/target/web/public/main))
[info] playAllAssets
[info] 	List((public/,/Users/sizer/hello-play-assets/target/web/public/main))
[success] Total time: 0 s, completed 2019/05/20 19:36:09
###
#Sie können eine Liste der Asset-Pfade anzeigen. Ziel/web/public/Es scheint in der Hauptsache zu sein.
###
$ tree target/web/public/main/
target/web/public/main/
├── images
│   └── favicon.png
├── javascripts
│   └── main.js
├── lib
│   └── child
│       ├── images
│       │   ├── favicon.png
│       │   └── image_in_child.jpg
│       ├── javascripts
│       │   └── main.js
│       └── stylesheets
│           └── main.css
└── stylesheets
    └── main.css

8 directories, 7 files
###
# lib/{moduleName}/Es scheint, dass Sie es bekommen können, wenn Sie es in Bildern angeben
###

Hintergrund

Ich entwickle eine Webanwendung mit Play Framework (Java). Die gemeinsamen Teile sind in untergeordnete Module geschnitten. Ich möchte ein Asset in einem untergeordneten Modul aufrufen. → Ich kann es nicht finden ...

├── build.sbt
├── child #=>Dies ist der gemeinsame Teil
│   ├── build.sbt
│   ├── app
│   ├── conf
│   └── public #=>Fügen Sie das Bild hier ein
├── conf
│   ├── application.conf
│   ├── logback.xml
│   └── routes
├── project
│   ├── build.properties
│   ├── plugins.sbt
└── public
    ├── images
    ├── javascripts
    └── stylesheets

`

Lesen Sie die offizielle Dokumentation

When you package your application, all assets for the application, including all sub projects, are aggregated into a single jar How are public assets packaged? - playframework.com

Es wird eine JAR-Datei mit Teilprojekten sein. Ja

Legen Sie es in einen öffentlichen Ordner und greifen Sie mit "Assets.at (Datei: String)" oder "Assets.versioned (Pfad =" / public ", Datei: Asset)" darauf zu.

→ Ich bin süchtig danach, nicht darauf zugreifen zu können

Fangen Sie die offizielle Ausgabe

Ich habe eine AUSGABE gefunden, die die Assets des untergeordneten Moduls nicht lesen kann!

Did you add the sbt web plugin or the play plugin (which transitively adds the sbt web plugin) to the subproject? Assets are now no longer considered classpath resources ... If you add the play plugin, you can put assets in the assets directory or the public directory. If you add the sbt web plugin, then you'll have to add the assets to the default directories for sbt-web, src/main/assets or src/main/public. https://github.com/playframework/playframework/issues/2944#issuecomment-44243541

Haben Sie dem untergeordneten Modul den sbt-web-Plug oder den Play-Plug hinzugefügt? Andernfalls werden Assets nicht in den Klassenpfad eingegeben

(Schreiben Sie das in die Dokumentation ...)

If you add the play plugin, you can put assets in the assets directory or the public directory. If you add the sbt web plugin, then you'll have to add the assets to the default directories for sbt-web, src/main/assets or src/main/public. https://github.com/playframework/playframework/issues/2944#issuecomment-44243541

Wenn Sie das Play-Plug-In installieren, lesen Sie das Assets-Verzeichnis oder das öffentliche Verzeichnis. Für das sbt-web-Plug-in ist es "src / main / assets" oder "src / main / public".

(Das steht in der Dokumentation ...)

Could you run show play-all-assets, and see if the assets are in there? Also useful may be to run show childproject/play-prefix-and-assets, and see if the child project assets are in there. https://github.com/playframework/playframework/issues/2944#issuecomment-44359790

Wenn Sie "Show Play-All-Assets" ausführen, finden Sie den Speicherort der Assets im untergeordneten Projekt.

(So etwas ist ein Dokument ...)

Hingerichtet

Apropos

- show play-all-assets
+ show playAllAssets

war

sizer@sizle:~/hello-play-assets (master *+>)
$ sbt "show playAllAssets"
[info] Loading global plugins from /Users/sizer/.sbt/1.0/plugins
[info] Loading settings for project hello-play-assets-build from plugins.sbt ...
[info] Loading project definition from /Users/sizer/hello-play-assets/project
[info] Loading settings for project root from build.sbt ...
[info] Loading settings for project child from build.sbt ...
[info] Set current project to hello-play-assets (in build file:/Users/sizer/hello-play-assets/)
[info] child / playAllAssets
[info] 	List((public/,/Users/sizer/hello-play-assets/child/target/web/public/main))
[info] playAllAssets
[info] 	List((public/,/Users/sizer/hello-play-assets/target/web/public/main))
[success] Total time: 0 s, completed 2019/05/20 19:36:09
$ tree target/web/public/main/
target/web/public/main/
├── images
│   └── favicon.png
├── javascripts
│   └── main.js
├── lib
│   └── child
│       ├── images
│       │   ├── favicon.png
│       │   └── image_in_child.jpg
│       ├── javascripts
│       │   └── main.js
│       └── stylesheets
│           └── main.css
└── stylesheets
    └── main.css

8 directories, 7 files

Ich habe den Ort mit "Assets.at (" lib / child / images / youfile.jpg) "betreten.

Was ist lib / {moduleName}, bitte schreiben Sie so etwas in das Dokument!

Impressionen

Unfreundlicher Rahmen der offiziellen Dokumentation Ernsthaft: Kacke:

PS

Ich habe ISSUE mit lib / {moduleName} als Präfix erstellt. : thumbsup: bitte Es mag angebracht sein, es auf "sbt-web" zu stellen, aber bitte lassen Sie mich wissen, wer Sie sind.

https://github.com/playframework/playframework/issues/9331

Recommended Posts

Wenn die Submodul-Assets nicht im Play Framework gefunden werden
Wenn die Submodul-Assets nicht im Play Framework gefunden werden
Spring-Boot-Hauptklasse nicht gefunden
HttpServletRequest-Klassendatei nicht gefunden
Überprüfen Sie, ob Ethereum-Transaktionen nicht im Block enthalten sind
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
Der Zeilenumbruch des eingegebenen Textes wird in der Ansicht nicht angezeigt
Notiz, die zum Anmeldebildschirm übergeht, wenn Sie nicht mit devise angemeldet sind
Validierungsfunktion in Play Framework
Was tun, wenn die Änderungen im Servlet nicht berücksichtigt werden?
Beurteilen Sie, ob die zu vergleichenden Zeichenfolgen in Java identisch sind
Fehler in ./gradlew: Symbol nicht gefunden
Was sind die Regeln in JUnit?
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Authentifizierungsfunktion mit Play Framework [Zugriffsbeschränkungen]
darf nicht in der for-Anweisung zurückgegeben werden
Spielen Sie die Framework 2.6 (Java) -Umgebungskonstruktion mit Eclipse
Hinzufügen, wenn nicht in Set, Fehlermeldung, wenn
Wenn die Tastenkombination Strg + in Eclipse nicht funktioniert, kann das Deaktivieren der Begrüßung hilfreich sein
Wenn ich den Quellbefehl im Makefile von Ubuntu ausführe, erhalte ich "source: Befehl nicht gefunden".