2014-12-30 2 views
7

Beispiel:Frühling und Thymeleaf: Wie Javascript eine separate Js bewegen Datei

Dies funktioniert

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:th="http://www.thymeleaf.org"> 
<head lang="en"> 
    <meta charset="UTF-8"/> 
    <title></title> 
</head> 
<body> 
    <button th:onclick="'javascript:sayHello(\'hello\')'">Say Hello</button> 
</body> 

<script> 
    function sayHello(text) { 
     alert(text); 
    } 
</script> 
</html> 

Aber wenn ich js auf die Datei hello.js im selben Ordner, Skript bewegen funktioniert nicht.

ich so versucht einbetten:

<script type="text/javascript" th:src="@{hello.js}"></script> 

Und wie folgt aus:

<script type="text/javascript" src="hello.js"></script> 

Was ich falsch mache?

+0

Könnten Sie prüfen, welche Fehler haben Sie Entwickler-Tools in Ihrem Browser verwenden? Vielleicht wird die Datei hello.js nicht geladen, ändern Sie sie in Wenn Sie es in Ihrem Stammkontext haben –

+0

Patrick, Schrägstrich hilft nicht. Die Nachricht sagt "ReferenceError: sayHello ist nicht definiert" – Andrey

Antwort

6

Sie verwenden Standardkonfigurationen von Spring-Boot Angenommen, Sie sollten Ihre thymeleaf Datei in src/main/resources/templates/ haben, so sollten Sie in der JavaScript-Datei setzen:

/src/main/resources/static 

Erklärung: Ihr Build-Tool (Maven oder Gradle) kopiert den gesamten Inhalt von /src/main/resources/ in den Klassenpfad der Anwendung, und, wie in geschrieben, wird der gesamte Inhalt aus einem Verzeichnis namens /static im Klassenpfad wil Ich werde als statischer Inhalt gedient.


Dieses Verzeichnis konnte auch funktioniert, aber es wird abgeraten:

/src/main/webapp/ 

Do not use the src/main/webapp directory if your application will be packaged as a jar. Although this directory is a common standard, it will only work with war packaging and it will be silently ignored by most build tools if you generate a jar.

+0

In der Tat! Vielen Dank Andrea. – Andrey

Verwandte Themen