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
###
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
`
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
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 ...)
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!
Unfreundlicher Rahmen der offiziellen Dokumentation Ernsthaft: Kacke:
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