13

AMP-HTML ページの構築に取り組んでいる Django 開発者はいますか?

(参考: Google AMP-project )

私の理解が正しければ、AMP-HTML の仕組みは、ページごとに 2 つの個別のファイルを作成することです。通常の HTML 結果と新しい AMP-HTML ファイル。AMP-HTML ファイルは、通常の HTML ページのスリム化されたバージョンであり、Google が高速化されたモバイル ページを返すために使用します (そのため、"Accelerated Mobile Pages" という名前が付けられています)。これらの各ファイルは、head 内のタグで相互に参照し、モバイルの検索結果に AMP ファイルを使用するよう Google に指示します。

Django フレームワーク内で、同じコンテンツ セットに基づいて 2 つの別個のファイルを作成する方法を考えています。

2 つの HTML 結果に渡される単一のコンテキストをどのように利用できるでしょうか? 1 つの結果は通常の HTML ページで、もう 1 つは AMP-HTML ページです。

Django では、返されるページごとに URL を作成する必要があります。既存の URL ごとに 2 つ目の URL を自動的に生成するにはどうすればよいでしょうか? さらに、これらの URL ごとに単一のコンテキストを呼び出すにはどうすればよいでしょうか。

おそらくビューでそれを行うことができますか?たとえば、AMP ページである .html 拡張子を返し、URL のテンプレートもレンダリングしますか?

これに取り組む方法については、まだ答えがありません。フィードバックと提案を探しています。これは、Django と AMP-HTML の stackoverflow に投稿された初めての質問のようです。最後ではない可能性が高いです。

4

4 に答える 4

6

私は仲間の django AMP 開発者ですが、専門家ではありません。次の URL パターンを使用しています。

url(r'^api/news/', include('news.api_urls'), {"type", "regular"}), # regular

url(r'^api/amp/news/', include('news.api_urls'), {"type": "amp"}), # AMP

テンプレートに渡される異なるコンテキストを生成するビューでは、テンプレート内の正規形が互いにポイントしており、機能しているようです

于 2016-02-18T08:35:50.823 に答える
4

ビューでは、GET クエリ パラメータなど、さまざまな方法でテンプレート変数を設定できます。

if request.GET.get('amp', 0) == 1:
    template_name = "amp.html"
else:
    template_name = "regular.html"

コンテキストに変数として渡すことができtemplate_nameます。これは、ページをレンダリングするときに使用できます。

{% extends template_name %}

これにより、同じビュー コード/URL/コンテキストを使用して、2 つのまったく異なるレイアウトをレンダリングできます。

于 2016-02-23T04:41:53.363 に答える