2014-12-30 15 views
7

Ví dụ:mùa xuân và Thymeleaf: Làm thế nào để di chuyển javascript để một .js riêng nộp

này hoạt động

<!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> 

Nhưng, nếu tôi di chuyển js đến hello.js tập tin trong cùng một thư mục, kịch bản không hoạt động.

tôi đã cố gắng nhúng như thế này:

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

Và như thế này:

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

Những gì tôi đang làm sai?

+0

bạn có thể kiểm tra những lỗi nào bạn đã sử dụng công cụ phát triển trong trình duyệt của bạn? Có lẽ tệp hello.js không được tải, thay đổi nó thành nếu bạn có nó trong ngữ cảnh gốc của bạn –

+0

Patrick, dấu gạch chéo không giúp được gì. Thông báo cho biết "Tham chiếuError: sayHello không được xác định" – Andrey

Trả lời

6

Giả sử bạn đang sử dụng cấu hình mặc định từ mùa xuân Boot bạn nên có tập tin thymeleaf của bạn trong src/main/resources/templates/ vì vậy bạn nên đặt các tập tin javascript trong:

/src/main/resources/static 

Giải thích: Công cụ xây dựng của bạn (Maven hoặc Gradle) sẽ sao chép tất cả nội dung từ /src/main/resources/ trong đường dẫn ứng dụng và, như được viết trong Spring Boot's docs, tất cả nội dung từ một thư mục có tên là /static trong classpath wil l được coi là nội dung tĩnh.


Thư mục này có thể làm việc cũng có, nhưng nó không được khuyến khích:

/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

Thật vậy! Cảm ơn rất nhiều Andrea. – Andrey

1

Theo tài liệu Khởi động mùa xuân, tài nguyên tĩnh được phân phối từ/static,/public hoặc off classpath.

http://docs.spring.io/spring-boot/docs/1.2.0.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-static-content

Ngoài ra còn có một đề cập ngắn gọn về cách để tải lại nội dung và mẫu của bạn tập tin tĩnh.

http://docs.spring.io/spring-boot/docs/1.2.0.RELEASE/reference/htmlsingle/#howto-reload-static-content

Các vấn đề liên quan