我准备将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