2017-01-17 43 views
2

私はまったく新しい開発者です(〜3-4週間)。私はrubymineを使用してRubyアプリケーションを構築しています。私は、ブートストラップ-4用のプラグインをインストールし、そしてそれは、ブートストラップページのために私を与えた自動テンプレートには、次のコード行を含める:Rails:CDNファイルのインポートとブートストラップのアセットを使用した

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" 
     content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> 
    <title>Title</title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css" 
     integrity="sha384-AysaV+vQoT3kOAXZkl02PThvDr8HYKPZhNT5h/CXfBThSRXQ6jW5DO2ekP5ViFdi" crossorigin="anonymous"> 
</head> 
<body> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/bootstrap.min.js" 
     integrity="sha384-BLiI7JTZm+JWlgKa0M0kGRpJbF2J8q+qreVrKBC47e3K6BW78kGLrCkeRX6I9RoK" crossorigin="anonymous"></script> 
</body> 
</html> 

私はCDNファイルや資産にまで読んで、最後の2時間を費やしてきましたこれらのCDNファイルを削除し、それらを宝石や資産パイプラインの「必要な」行に置き換えるか、ここに残す必要がありますか?これはおそらく私の目標にかかっていることは分かっていますが、私の目標はロード時間に大きな遅れを生じさせることなくウェブサイトのスタイルを提供することだけです。私のページの1つにはonclick機能とapi呼び出しがたくさんあります。以前のバージョンのアプリケーションでは、状況が減速していました(javascriptのためのものかどうかはわかりませんが、私の勇気は、それでやってください)。

要約すると、わかりやすく、コードを理解したいと思います。これらのCDNコード行を保持すべきか、資産パイプラインの何かに置き換えるべきですか?

乾杯、マイケル

答えて

3

CDNは、ユーザーに優れた カバレッジを提供し、一度に多くの場所で、あなたのコンテンツを置きます。

あなたはhereそれらについての詳細を読むことができます。

上記の場合、CDN(コンテンツ配信ネットワーク)を使用すると、ページの読み込み時間が改善されるので、より良いです。リンクに指定されたjs、cssファイルのみです。スクリプトタグは最も近い場所からキャッシュされ、次のリクエスト以降はブラウザのキャッシュからロードされます。

js/cssが最も近い地理的な場所からロードされるため、最初のリクエストでは読み込み時間が短くなります。

例:

あなたの米国内でホストされているアプリ、およびインドからそれをアクセスしているユーザーを考えてみましょう。 CDNを使用している場合は、CDNを使用していない場合と同様に、読み込み時間が長くなるため、CDNを使用していない場合と同様に、最も近い地理的な場所からアセットを読み込もうとします。

場合は一般的に、それは資産を使用することをお勧めします:それはJS共通のcss /ではないか、そのは/一日一回/週、少なくとも変更するつもり感じる場合、それはあなた自身の資産

  • ある

    いつでも、レールはすべてのアセットの名前にハッシュコードを追加します。アセットのプリコンパイルレールは、アセットのバージョンを維持するための方法です。デフォルトでは、アセットはアプリのキャッシュ設定に基づいてキャッシュされ、アセットの新しいバージョンが利用できるようになるまで、アプリはキャッシュされたバージョンを使用します。唯一の問題は、アプリケーションのホスティング場所から常に最初にロードされるため、ロード時間が少し長くなります。

    しかし、あなたはS3バケットであなたの資産を保存することができますし、その後S3バケットから独自のCDNを作成AWS S3を、使用することができます。あなたはasset_sync宝石hereとS3バケットhereからAWS CloudFrontは(CDN)の作成についてを使用してS3約同期資産を読むことができます。

  • +0

    甘い答え!だから、基本的に、私の貧弱な目標を考えれば、私は間違いなくCDNを使うべきです。私がより良いホイール製作能力を得るまで、ホイールを再発明する必要はありません。ありがとう! – michaelsking1993

    +0

    はいそうです。 – sahil

    +0

    もう1つ質問があります:SCSSとSASSにCDNファイルはどうなりますか?私はちょうどCDNがCSSを提供すると言った別のstackoverflow質問/答えを見つけた - これは本当ですか? – michaelsking1993

    関連する問題