2012-12-17 33 views
6

Tôi có một ứng dụng đơn backbone.js được thiết lập với bộ định tuyến (tốt, thực sự là một ứng dụng Backbone.Marionette với Backbone.Marionette AppRouter, nhưng tuy nhiên). Tuy nhiên, chương trình phụ trợ có trụ sở tại Django, nơi tôi không có liên kết URL hướng đến các chế độ xem cho tất cả các URL đã có trong các tuyến đường backbone.js.Django URL conf và Backbone.js Router

Dựa trên các URL hiện có trong conf Django, Backbone.js sẽ phục vụ các tuyến đường trục bất kể những gì được liệt kê trong conf Django - có vẻ như một cái gì đó, bất cứ điều gì chỉ cần ở đó.

Tôi có cần có chế độ xem Django phù hợp để cung cấp dự phòng cho trình duyệt cũ/SEO không?

Các phương pháp hay nhất để phối hợp conf URL Django và bộ định tuyến Backbone.js là gì?

Trả lời

2

Tôi đã tìm thấy một bài nhằm giải quyết vấn đề này khá tốt:

http://duganchen.ca/single-page-web-app-architecture-done-right/

Tóm lại, lập luận của tôi cho đó có một dự phòng là dành cho trình duyệt không phải javascript và lý do SEO. Tại thời điểm bài viết này, các trình duyệt không phải javascript chiếm ~ 1.4% (ít hơn 2% so với tất cả những gì tôi đã đọc) của người dùng, làm SEO Việc cân nhắc chính. Một lần nữa, SEO có thể không có liên quan cho tất cả mọi người đọc bài đăng này, trong trường hợp này, điều này có thể được bỏ qua.

Tôi thấy hướng dẫn của Thomas Davis sử dụng phantom.js khá hữu ích. http://backbonetutorials.com/seo-for-single-page-apps/

Tuy nhiên, một vấn đề khác mà tôi cần phải giải thích là API lịch sử, tất cả đều bị bỏ qua bởi tất cả các trình duyệt IE mới nhất. Với người dùng của khách hàng của tôi, khoảng 15% trong số đó đang sử dụng IE < = 9, đây cũng là một vấn đề.

Cuối cùng, tôi cũng cần sử dụng history.js. Tất cả trong tất cả, đây là rất nhiều công việc để cập nhật một trang web khác rất đơn giản. Tuy nhiên, tôi đã học được rất nhiều từ thử thách này.

1

Theo ý kiến ​​của tôi nếu ứng dụng xương sống của bạn thực sự là một trang duy nhất thì bạn không cần bất kỳ chế độ xem django nào. Bạn có thể phục vụ index.html của bạn như một tệp tĩnh (trong sản xuất, thậm chí không bằng django) và sau đó để cho bộ định tuyến của backbone xử lý cấu hình url của bạn, như bạn đã làm. Bạn có thể sử dụng lịch sử của xương sống và điều hướng đến các url giả, thêm thông số url, v.v ... cho các tài nguyên trong ứng dụng của bạn.

+0

Cảm ơn! Tôi đã hy vọng tài khoản cho một dự phòng không javascript, và cần thiết để chiếm SEO. Xem câu trả lời của tôi ở trên. – snakesNbronies

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