2011-08-17 21 views
9

Tôi đang thực hiện một số trách nhiệm về xương sống cho một ứng dụng đơn và tự hỏi liệu có thể sử dụng lại cùng một chế độ xem/tuyến đường hay không từ phía máy khách ở phía máy chủ, để khi google truy cập vào một URL pushstate hoặc nó được truy cập trực tiếp, máy chủ có thể tạo chính xác cùng một HTML sẽ được tạo ra bởi xương sống trong máy khách.Sử dụng lại các khung nhìn/tuyến đường trên máy chủ khi sử dụng pushstate Backbone.js cho seo/đánh dấu

Sẽ là một nỗi đau khi phải duy trì hai tập hợp các chế độ xem/lộ trình riêng biệt, một bộ trên máy khách và một trên máy chủ. Tôi đã nhìn thấy dự án backnode trên github tuy nhiên điều này dường như bỏ lỡ điểm một chút và bạn sẽ phải viết cùng một bộ định tuyến xương sống hai lần.

Chỉ cần tự hỏi mọi người thường xử lý trường hợp như thế nào khi sử dụng url pushstate trong xương sống và cần phân phối cùng một chế độ xem từ máy chủ? Mọi người sao chép mã hay có cách nào tốt hơn?

Trả lời

5

Tôi đã không cố gắng này được nêu ra nhưng những ý tưởng sử dụng Node.js và xương sống có thể giúp:

http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/

http://bennolan.com/2010/08/13/pushstate-and-nodejs.html

Về cơ bản cách duy nhất để làm cho nó để bạn không viết giống nhau điều hai lần là có cả máy chủ node.js của bạn và máy khách frontend chia sẻ cùng một mã định tuyến/mô hình. Nếu bạn đang sử dụng một cái gì đó khác ở phía máy chủ (như Ruby), bạn sẽ phải đặt node.js ở phía trước máy chủ ứng dụng của bạn. Sau đó, hãy tạo proxy node.js cho các máy khách mới (các trạng thái đẩy và các máy khách) và thực sự làm việc kết xuất cho các máy khách cũ/bot.

Tùy chọn khác đang làm những gì jQuery Mobile thực hiện là phương pháp Hijax. Ý tưởng tạo ra hàng tấn các trang HTML5 (bạn sẽ phải xem định tuyến của nó để xem).

Và cho đầy đủ bạn nên lưu ý về cách Google thu thập thông AJAX: http://code.google.com/web/ajaxcrawling/docs/getting-started.html

+3

Tôi vừa tìm thấy http://www.idiotz.nl/2011/08/28/backbone-everywhere/. Tôi nghĩ rằng điều này có thể chỉ là những gì tôi đang tìm kiếm, vì anh ta đã làm việc ở phía máy chủ nên tất cả các khung nhìn đều được hiển thị phía máy chủ và thoát ra khỏi máy khách, từ đó khách hàng tiếp quản, nghĩa là vấn đề seo được giải quyết. – cjroebuck

+0

Vâng, có rất nhiều khung công tác nút. Tôi viết blog về điều này (xem hồ sơ của tôi) và vẫn không chắc chắn vì vậy tôi đã chơi với express + backbone.js + kiên trì. –

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