2015-08-21 19 views
7

Tôi đang sử dụng Ruby on Rails 5 và sử dụng turbo-link như hình dưới đây:Ruby on Rails 5 - Turbolink 3 đã không làm việc một cách chính xác

<%= javascript_include_tag 'custom-plugins', 'data-turbolinks-track' => true %> 

Nó đang làm việc tốt với Ruby On Rails 4 nhưng có vấn đề với Ruby on Rails phiên bản 5. Khi tôi bấm vào lại js/css không nạp đúng.

Mọi trợ giúp sẽ được đánh giá cao.

+1

chính xác thì không tải u nghĩa là gì? –

+0

Tôi mở trang web của mình www.example.com -> mọi thứ đều tốt đẹp Tôi mở một trang khác -> www.example.com/xyz rồi nhấp vào nút quay lại, bây giờ trang không hiển thị chính xác. –

+0

u có nghĩa là nói hiển thị trang không hoạt động? hoặc các hàm JS không tải? –

Trả lời

2

Như trọng tài để Rails 5 Awesome features

Turbolinks đã là một phần của Rails kể từ phiên bản 4, có lẽ là một trong những tính năng mà mọi người ghét nó hay tình yêu; không có nền tảng trung gian ở đây.

Với Rails 5, chúng tôi sẽ nhận được phiên bản mới, với sự trợ giúp của thuộc tính dữ liệu tùy chỉnh HTML5, chúng tôi sẽ mong đợi tốc độ và hiển thị tốt hơn trong các ứng dụng Rails của chúng tôi.

Thay đổi quan trọng nhất trong phiên bản mới này là tính năng Thay thế từng phần. Từ phía khách hàng, chúng tôi sẽ có thể nói cho Turbolinks biết chúng tôi cần thay đổi/thay thế những gì và chúng tôi không làm gì.

Turbolinks sẽ tìm thuộc tính tùy chỉnh HTML5 và để quyết định chiến lược thay thế trong của chúng tôi.

Để kích hoạt thay thế ở phía máy khách, chúng tôi có thể sử dụng hoặc cập nhật. Sự khác biệt giữa và là người đầu tiên sẽ phát hành một máy chủ để lấy HTML phải được sử dụng để thay thế trong khi chúng tôi mong đợi từ chúng tôi HTML nên được sử dụng cho hoạt động của nó.

Với cả hai hàm, chúng tôi có thể chuyển một băm bằng một hoặc một mảng các phần tử HTML vào hoặc.

Action Result 
Turbolinks.visit(url, { change: ['entries'] }) Will replace any element with custom attribute and any element with its id listed in change. 
Turbolinks.visit(url) Will keep only elements with custom attribute and replace everything. 
Turbolinks.visit(url, { keep: ['flash'] }) Will keep only elements with custom attribute and any element with its id listed in keep, everything else will be replaced. 
Turbolinks.visit(url, { flush: true }) Will replace everything 

Chúng tôi có thể kích hoạt cùng chức năng từ phía máy chủ và, cả hai có thể nhận và tùy chọn nhưng cũng có thể nhận hoặc buộc chuyển hướng có hoặc không có Turbolinks.

Cho dù bạn thích Turbolinks hay không, đây có thể là thời điểm tốt để thử và tìm hiểu xem nó có phù hợp với một nơi nào đó trong ứng dụng của bạn hay không.

+0

thanks sumit :) –

1

Đó là sự xuất hiện phổ biến đối với turbolinks với js. Turbolinks giúp tải một trang cụ thể nhanh hơn rất nhiều. Nhưng những gì nó cũng làm là dừng các js hoạt động đôi khi. Vì vậy, trong khi tải sử dụng trang cụ này dòng này

<%= link_to "example_page", example_page_path, :"data-no-turbolink" => true %> 

hoặc viết này trong cách bố trí của bạn

<body <%= "data-no-turbolinks='true'".html_safe if controller_name=="example_controller" && action_name=="example_page" %>> 

ngừng turbolink từ làm việc trong trang đặc biệt này.

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