希望您能为您提供帮助。我已经继承了Rails中的一个小网站,负责编辑该网站。 我对PHP有很好的了解,但对Rails来说是个新手。
我需要对文件进行非常简单的编辑(已完成),但是保存后它不会显示在网站上。 该文件位于config目录中。 我已经重新启动了要从其提供服务的计算机(Mac OS 10.8),我已经在线搜索了许多答案,包括禁用缓存,将config.cache_classes更改为false以及将config.consider_all_requests_local更改为true,但是似乎没有任何效果。 该网站使用独角兽作为服务器。
我想念什么? 我意识到这可能是使用Rails的一种糟糕方法,我向自己保证我会学习的,但是现在我只需要知道如何进行实时更改,因为我习惯了使用html,php等通过FTP进行更改。
谢谢您的期待!
如果您重新启动了计算机,可以从中使用该计算机,但更改仍然不显示,则表示您一起编辑了错误的文件。 也许它确实是从此计算机上的另一个文件夹提供的? 还是从另一台机器?
如果您具有ssh访问权限,则可能只需要从应用程序根目录运行touch tmp / restart.txt
PROJECTDIR / tmp / restart.txt
您可以通过任何文本编辑器在FTP服务器上打开tmp / restart.txt,然后按Ctrl + S(保存),以便触摸文件并重新启动服务器
或者如果您具有ssh访问权限
从Rails应用程序根目录触摸tmp / restart.txt
- -编辑 - -
对不起,您没有看到您说过重新启动机器的部分。 资产管道更有可能出现问题。
尝试删除公共/资产
然后运行
捆绑执行耙资产:预编译
我认为有一个命令可以清除并重新编译,但我不记得了
另外,如果这些答案无济于事,了解您实际编辑的内容和方法可能会有所帮助。 是css吗? 标记? 控制器?
通常使用称为Capistrano的软件来部署Rails应用程序。 如果找到文件app/Capfile
和app/config/deploy.rb
则您的应用正在使用它。 Capistrano的典型工作流程是
git clone
) cap deploy
来完成所有可能需要的事情,例如重新编译资产 capistrano的作用(最基本的用法)是:
your-app-name/releases/<date-filename>/
创建一个子目录 git pull
) your-app-name/current
的符号链接替换为一个到新目录的链接 touch your-app-name/current/tmp/restart.txt
问题,否则,您可能需要重新启动Web服务器 如另一个答案所述,对“资产”(CSS,JS,图像)的更改将需要重新编译。 我认为bundle exec rake assets:precompile
要从<your-app-name>
子目录运行bundle exec rake assets:precompile
,但是如果事情搞砸了,请先运行bundle exec rake assets:clean
。
在某些情况下,capistrano和源代码控制被设置为要求部署使用进行部署的用户的本地凭据ssh-agent
和ssh-add
命令支持。 如果您的源代码管理系统不允许直接从服务器进行访问,则将需要这些(如果是这样,您将在app/config/deploy.rb
看到ssh_options[:forward_agent] = true
行)。
当然,根据您的环境,可能还有许多其他依赖项需要管理。 如果您甚至拥有一个远程高级环境,则应该进行工作,弄清楚如何正确部署方式,可能使用capistrano。
这是我最后要做的,而且我意识到这并不是您使用Rails的方式。
我备份了应用程序目录,重新映像了用于测试它的开发机。 按照http://rubyonrails.org/download执行了Ruby on Rails的全新安装。 我用相同的名称创建了一个新的空应用程序,然后将正在使用的应用程序的内容复制到新的应用程序框架中,选择不覆盖任何现有文件。 然后,我安装了Passenger,并将其作为独立运行。 这使我的应用程序重新启动并运行,现在,当我在config / initializers中对文件进行任何更改时,它们在我重新启动passenger时就会反映出来。 所以我很好。
现在,我需要学习如何真正做到这一点。谢谢。