我準備將cakephp應用程序部署到Web上,並且我想將所有資產(img,js,css)移動到CDN以提高性能。有沒有一種方法可以全局更改HTML幫助程序鏈接到資源的位置,而不必更改每個鏈接。用cakephp鏈接到cdn上的資產
回答
我有一個解決方案,但它涉及到改變的核心,我知道我知道......我已經打了我自己做這件事;-)
我們有一棟建一個項目,然後需要一個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;
}
}
然後在你的應用程序/文件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/'));
當你REFR通過html/javascript助手輸出的每個文件都會自動選擇一個隨機的靜態服務器。
請注意,除非您在css文件中使用絕對路徑(包括域名),否則您需要確保圖像也位於靜態服務器上。
我知道你不應該真的在覈心玩耍,但有時它真的更容易。
乾杯, 院長
如果路徑和文件名堅持,也許mod_rewrite的可能是痛苦少。
RewriteCond %{REQUEST_URI} ^/css/
RewriteRule ^css/(.*)$ http://cd.yourdomain.com/css/$1 [R=301,L]
不會導致兩個http請求? – bicycle 2013-07-28 07:39:53
我也有類似的問題,這裏是我如何解決它:
Adding a prefix to every URL in CakePHP
的AppHelper::url()
方法是你應該會喜歡的地方
最近我碰到這個涼爽的幫手來了相對容易地完成這項任務。它被稱爲Asset Host Helper並且可以從其GitHub repository獲得。
我最喜歡的就是您不必擔心在開發副本(很可能在本地主機上)或生產副本(在CDN上)中更改資產的位置。幫手自動處理它。
看看 - 這可能只是你正在尋找的工具。
乾杯,
平方公尺Ë
我知道這是一個老問題,但在任何情況下,未來的人們軌道3越過它絆倒。1,你現在可以使用
config.action_controller.asset_host = "ATBTracking"
在config/environments/production
除了這篇文章是關於CakePHP,不是Rails ;-) – acorncom 2014-06-21 16:12:21
- 1. 鏈接到沒有資產助手的資產
- 2. 使用Symfony 2的CDN樹枝資產
- 3. 直接鏈接到資產管道中的編譯資源?
- 4. stylesheet_link_tag沒有鏈接到/資產在Rails資產管道
- 5. 從Javascript鏈接到樣式表資產
- 6. Rails image_tag不使用CDN資產
- 7. 使用CDN和Telerik在ASP MVC 3上的網絡資產
- 8. 鏈接上的CakePHP關係
- 9. Symfony2資產生成指向CDN的URL
- 10. Rails資產管道如何鏈接到生產上的特定.js文件
- 11. 使用mod_proxy將資產請求重定向到CDN
- 12. 使用CDN資產管道的新階段Rails資產路徑不正確
- 13. 是否將資產緩存在CDN中
- 14. Laravel資產()不正確的鏈接
- 15. 部署Web應用程序:更新cdn上的資產和對服務器資產的引用
- 16. CakePHP的鏈接
- 17. cakephp - 如何授權資產?
- 18. CDN鏈接和缺少http:
- 19. 鏈接到靜態資產,自定義MVC應用程序(PHP)
- 20. Symfony 2 - 創建上傳資產的鏈接
- 21. 錯誤的產生上分頁資源自給鏈接
- 22. Angular 2 base_href鏈接資產問題
- 23. 初始種子訪問資產鏈接
- 24. Symfony2資產生成死鏈接dev
- 25. 自動鏈接資產文件,laravel
- 26. 文件佈局和資產鏈接?
- 27. CakePHP的HTML鏈接
- 28. 通過git自動將資產部署到Rackspace CDN並更新對這些資產的引用?
- 29. Rails 3.1:動態鏈接到資產管道中的圖像?
- 30. rails 4 image_tag未鏈接到我的消化圖像資產
你可以/應該注入URL中'AppHelper :: URL()'(從'父:: URL()'得到真正的URL後)那麼你可以停止抨擊自己。 ;-) – deceze 2010-02-18 06:45:11