我准备将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. 直接链接到资产管道中的编译资源?
- 3. stylesheet_link_tag没有链接到/资产在Rails资产管道
- 4. Rails image_tag不使用CDN资产
- 5. 使用CDN和Telerik在ASP MVC 3上的网络资产
- 6. 链接上的CakePHP关系
- 7. 使用CDN资产管道的新阶段Rails资产路径不正确
- 8. CDN链接和缺少http:
- 9. 链接到静态资产,自定义MVC应用程序(PHP)
- 10. 错误的产生上分页资源自给链接
- 11. Angular 2 base_href链接资产问题
- 12. 文件布局和资产链接?
- 13. 自动链接资产文件,laravel
- 14. CakePHP的HTML链接
- 15. “application.css未预编译”Heroku上的错误与CDN上的远程资产
- 16. 将资产与Symfony2和Assetic结合使用时使用CDN
- 17. 将资产图像链接到我存储在数据库中的产品值
- 18. 任意链轮资产只有资产路径Rails /链轮
- 19. 链接到cakephp的管理页面
- 20. CakePHP的:添加链接到回波
- 21. 使用Django将资产管理到CDN的最佳方式是什么?
- 22. 上传从资产库到服务器的资产 - 目标c
- 23. 如何在生产中引用来自不同子域(或CDN)的资产?
- 24. 从资源文件链接到资源
- 25. 在symfony中使用资产和角度的断开链接
- 26. 在资产目录中使用链接的文件 - FileNotFound异常
- 27. 将CDN链接列表连接到一个文件(gulp)
- 28. 链接到用户个人资料
- 29. 获取Aliexpress上的产品的推荐链接(分享)链接?
- 30. 用于开发和部署的静态资产和基于CDN的资产之间切换的最佳方式
你可以/应该注入URL中'AppHelper :: URL()'(从'父:: URL()'得到真正的URL后)那么你可以停止抨击自己。 ;-) – deceze 2010-02-18 06:45:11