Alex Rivera | Logout

How to reach css and image files from the html page loaded by javafx.scene.web.WebEngine#loadContent?

Asked 2012-01-19T09:38:25.787
12

I have a String HTML content which is loaded into webEngine by loadContent() method. I have also some css and image files used in this page. Although I put these file into the same package of java class, the loaded page cannot find them. Looked for API docs and web, but could not find any appropiate similar solutions. How I load these files?

Edit
Report

1 Answer

11

You can place your string html content in a file in the same package as the Java class and use the engine.load(String url) method instead:

engine.load(getClass().getResource("mypage.html").toExternalForm());

When you do this, all relative links in the html page will resolve to resources (e.g. css and image files) in your Java package.

Beware that if you are loading a resource that is located in a jar file, that the jar: protocol does not understand relative links with parent specifiers. E.g., <img src="../images/image.png"/> will not work, but <img src="/images/image.png"/> or <img src="images/image.png"/> will as long (as you put the image in the appropriate location in the jar file). The file: protocol does not have such restrictions and .. relative links will work fine when the resources are loaded using it.

If the html string is dynamically generated by your java code rather than static, then Sergey's solution is probably best.

answered 2012-01-19T18:46:01.787

Your Answer