2013-10-30 13 views
7

Tôi đang đọc về thông số kỹ thuật của google về thu thập dữ liệu ajax; tôi hiểu khái niệm nhưng tôi cần một số làm rõ hơn:Làm cho ứng dụng Ember có thể thu thập thông tin

URL của tôi là tất cả như thế này:

http://www.website.com/#!/eng/home 
http://www.website.com/#!/eng/contacts 
... 

tôi phải cung cấp ảnh chụp html tại các địa chỉ:

http://www.website.com/?_escaped_fragment_=/eng/home 
http://www.website.com/?_escaped_fragment_=/eng/contacts 
... 

Đây có phải là chính xác? Hoặc tôi có nên xóa "/" trong URL "escaped_fragment" (ví dụ: http://www.website.com/?_escaped_fragment_=eng/home hoặc một cái gì đó khác không?)

Tôi tạo ảnh chụp nhanh HTML với các ma ảo, nhưng cách nào là cách tốt nhất để cung cấp các ảnh chụp nhanh này cho trình thu thập thông tin ? Sử dụng nút js? Sử dụng quy tắc viết lại htaccess?

Trả lời

5

Ok, kể từ khi tôi cuối cùng đã thoát khỏi điều này, tôi muốn chia sẻ cách tôi tìm thấy;

đầu tiên của tất cả các ảnh chụp HTML phải được cung cấp cho trình thu thập tại một URL cụ thể mà

?_escaped_fragment_= 

được thay thế

#! 

Vì vậy, nếu bạn có:

http://www.website.com/#!/eng/home 

của bạn máy chủ phải cung cấp ảnh chụp nhanh tại:

http://www.website.com/?_escaped_fragment_=/eng/home 

Nếu ai đó quan tâm đến phương pháp tôi sử dụng để tạo ảnh chụp nhanh, tôi chỉ cần sử dụng mô-đun nút có tên là judo (https://npmjs.org/package/judo); để sử dụng điều này bạn cần phải có trên máy ảo của bạn (http://phantomjs.org/) và nút (http://nodejs.org/); (thông tin thêm về cách cài đặt phantomjs trên máy chủ: How can I setup & run PhantomJS on Ubuntu?)

Khi bạn đã cài đặt mọi thứ, bạn chỉ cần viết tệp js bằng judo (ví dụ: judo.js) (theo trang tài liệu mà tôi đã liên kết trước khi bạn sẵn sàng trong 5 phút); tải lên tệp trên máy chủ và thực thi nó bằng nút để tạo ảnh chụp nhanh và sơ đồ trang web;

sau này, bạn cần phân phối trình thu thập dữ liệu của Google bằng ảnh chụp nhanh HTML khi anh ấy yêu cầu? _escaped_fragment_ = URL; cách đơn giản nhất theo ý kiến ​​của tôi là tập tin .htaccess; đặc biệt là bạn chỉ cần 3 dòng mã, mà trong trường hợp của tôi là:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/(.*)$ 
RewriteRule ^$ /seo/snapshots/%1\.html [L] 

(vì trong judo.js tôi tập tin tạo ra các bức ảnh chụp trong/seo/snapshots thư mục)

Cuối cùng, bạn có thể kiểm tra mọi thứ hoạt động bằng cách sử dụng tùy chọn "tìm nạp như google" trong bảng điều khiển công cụ quản trị trang web của google; nếu bạn đã làm tất cả chính xác, bạn sẽ thấy rằng kết quả là ảnh chụp nhanh HTML ...

+0

Một điều nữa để xem xét là _escaped_fragment_ sẽ được urlencoded và do đó cần phải được giải mã để tạo ra 'khá url' cho phantomjs render. Gần đây, tôi đã khởi chạy crawlspa.com, cung cấp mọi thứ dưới dạng dịch vụ. – DanS

1

Thông thường tôi không trả lời SO bài viết bằng cách gợi ý một dịch vụ thanh toán, nhưng trong trường hợp này nghĩ rằng bạn thực sự cần xem xét sử dụng BromBone - http://www.emberjsseo.com

+0

Cảm ơn đề xuất của bạn, nhưng tôi quan tâm đến việc học điều này; bắt đầu từ đầu, từng bước tôi hiểu làm thế nào để tạo ra các bức ảnh chụp, và bây giờ tôi muốn thoát khỏi bước cuối cùng này ... –

+0

thậm chí https://prerender.io/ là khá tốt tôi cảm thấy và nó là miễn phí cũng – wallop

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