Ruby on rails 执行;资产:预编译“;按代码/客户
我有一个站点,有很多图像(+10k),有几百个页面显示,所以我使用RubyonRails资产的原理来编译这些图像。问题是,我的客户端有可能通过FTP更改这些映像,它迫使我每次都用ssh连接到服务器,以启动命令“assets:precompile”。是否有一种方法可以创建一个链接按钮,我的客户端将单击该按钮从代码中启动命令 我试图用where gem()创建一个cron作业,该作业每小时运行一次“assets:precompile”命令,但它不起作用Ruby on rails 执行;资产:预编译“;按代码/客户,ruby-on-rails,ruby,assets,sprockets,Ruby On Rails,Ruby,Assets,Sprockets,我有一个站点,有很多图像(+10k),有几百个页面显示,所以我使用RubyonRails资产的原理来编译这些图像。问题是,我的客户端有可能通过FTP更改这些映像,它迫使我每次都用ssh连接到服务器,以启动命令“assets:precompile”。是否有一种方法可以创建一个链接按钮,我的客户端将单击该按钮从代码中启动命令 我试图用where gem()创建一个cron作业,该作业每小时运行一次“assets:precompile”命令,但它不起作用 每小时做一次 rake“资产:预编译” 终止
每小时做一次
rake“资产:预编译”
终止
我试图创建这个链接到链接的方法,但也没有成功
def编译图像
系统('rvm使用2.2。0@project&&cd/var/www/project folder/&&rake资产:预编译“)
重定向到imports\u index\u路径,注意:'imagescompiled'
终止
我使用的是ruby 2.2和rails 4.2
感谢您的帮助资产编译应仅用于应用程序中使用的静态图像(图标、背景…),而不是站点使用的实际数据 如果它是一个动态的、大量的图像集合,则尤其如此
这不再是一个真正的编程问题,它更像是一个一般的软件工程问题,但这是我的两分钱 我建议您使用CDN将照片提供给浏览器。您的Rails应用程序应该存储(或构建)CDN的URL,以便客户端浏览器能够获取和显示它们 例如,在承载FTP服务器的同一台机器上设置一个HTTP服务器(如Nginx),然后构建一个一致的URL模式,以便可以通过HTTP提供FTP文件,而无需复制 通过FTP添加到服务器的新文件可以通过HTTP自动获得,也许cron作业或异步工作者可以检查新文件并将其注册到Rails应用程序
当然,这只是一个可以做到的例子。有很多其他的解决方案,但是没有更多的细节,很难说。资产编译应该只用于应用程序中使用的静态图像(图标、背景…),而不是站点使用的实际数据。如果它是一个动态的、大量的图像集合,这一点尤其正确。哦!我不知道。。。目前我使用image_tag()链接我的图像。如何链接我的图像而不使用资产编译?