2

CakephpアプリをWebにデプロイする準備をしています。パフォーマンスを向上させるために、すべてのアセット(img、js、css)をCDNに移動したいと思います。すべてのリンクを変更する代わりに、HTMLヘルパーがアセットにリンクする場所をグローバルに変更する方法はありますか?

4

5 に答える 5

2

最近、このタスクを比較的簡単に実行できるこのクールなヘルパーに出会いました。これはAsset Host Helperと呼ばれ、そのGitHub リポジトリから入手できます。

私が最も気に入ったのは、開発用コピー (ほとんどの場合は localhost 上) または運用用コピー (CDN 上) のアセットの場所を変更することを心配する必要がないことです。ヘルパーが自動的に処理します。

確認してください - これはまさにあなたが探しているツールかもしれません。

乾杯、
m^e

于 2011-05-14T15:31:32.923 に答える
1

ルートとファイル名が存続する場合は、mod_rewriteの方が苦痛が少ない可能性があります。

RewriteCond %{REQUEST_URI} ^/css/
RewriteRule ^css/(.*)$ http://cd.yourdomain.com/css/$1 [R=301,L]
于 2010-02-18T06:38:57.180 に答える
1

私は同様の問題を抱えていました、これが私がそれを解決した方法です:
CakePHPのすべてのURLにプレフィックスを追加する

メソッドはあなたAppHelper::url()が興味を持っているべき場所です。

于 2010-02-18T06:48:56.647 に答える
0

私には解決策がありますが、それにはコアを変更する必要があります。

ビルドされたプロジェクトがあり、CDN が必要だったので、HTML ヘルパーと Javascript ヘルパーにコードを少し追加して支援しました。

/cake/libs/view/helpers/html.php ファイルの 360 行目にこれを追加します

if (Configure::read('Asset.CDN.enabled')) {
    $static_servers = Configure::read('Asset.CDN.static_servers');

    if(sizeof($static_servers) > 0) {
        shuffle($static_servers);
        $url = $static_servers[0].$url;
    }
}

/cake/libs/view/helpers/javascript.php の 288 行目

if (Configure::read('Asset.CDN.enabled')) {
    $static_servers = Configure::read('Asset.CDN.static_servers');

    if(sizeof($static_servers) > 0) {
        shuffle($static_servers);
        $url = $static_servers[0].$url;
    }
}

次に、 app/config.core.php ファイルに次の設定オプションを追加するだけです

// Static File Serving on a CDN
Configure::write('Asset.CDN.enabled', false);
Configure::write('Asset.CDN.static_servers', array('http://static0.yoursite.com.au/', 'http://static1.yoursite.com.au/'));

ページを更新すると、html/javascript ヘルパーを介して出力される各ファイルは、ランダムな静的サーバーを自動的に選択します。

css ファイルで絶対パス (ドメイン名を含む) を使用していない限り、画像が静的サーバーにもあることを確認する必要があることに注意してください。

コアで実際にいじるべきではないことはわかっていますが、時にはそれが本当に簡単な場合もあります。

乾杯、ディーン

于 2010-02-18T06:15:33.333 に答える
-1

これは古い質問であることは知っていますが、将来の人が Rails 3.1 でそれに出くわした場合に備えて、今すぐ使用できます

config.action_controller.asset_host = "ATBTracking"

config/environments/production

于 2011-10-08T10:09:24.250 に答える