0

私はあなたが助けてくれることを願っています..私は編集を任された小さなサイトをRailsで継承しました。PHP はよく理解していますが、Rails はまったくの初心者です。

ファイルを非常に簡単に編集する必要がありますが、保存するとサイトに表示されません。ファイルは config ディレクトリにあります。サービスを提供しているマシン (Mac OS 10.8) を再起動しました。キャッシュを無効にする、config.cache_classes を false に変更する、config.consider_all_requests_local を true に変更するなど、多くの回答をオンラインで検索しましたが、何も機能していないようです。このサイトはサーバーとしてユニコーンを使用しています。

私は何が欠けていますか?これはおそらく Rails で作業するのにひどい方法であることに気づきました。私はそれを学ぶことを約束しましたが、今のところ、html や php などで FTPing の変更に慣れているので、ライブ変更を行う方法を知る必要があるだけです.

期待してありがとう!

4

4 に答える 4

1

提供元のマシンを再起動しても変更が表示されない場合は、間違ったファイルを編集していたことになります。このマシンの別のフォルダから実際に提供されているのではないでしょうか? それとも別のマシンから?

于 2012-12-05T19:17:57.863 に答える
0

これが私が最終的にしなければならなかったことです、そして私はこれがあなたがRailsで働くことを意図されている方法ではないことを理解します。

アプリディレクトリをバックアップし、テストに使用していた開発マシンのイメージを再作成しました。http://rubyonrails.org/downloadに従って、RubyonRailsのクリーンインストールを実行しました。同じ名前で新しい空のアプリを作成し、作業中のアプリのコンテンツを新しいアプリスケルトンにコピーして、既存のファイルを上書きしないようにしました。次に、Passengerをインストールして、スタンドアロンとして実行しました。これにより、アプリが再び稼働し、config / initializersのファイルに変更を加えたときに、passengerを再起動したときにそれらが反映されました。だから私は行ってもいいです。

今、私は実際にそれを行う方法を学ぶ必要があります..すべてに感謝します。

于 2012-12-07T02:42:02.270 に答える
0

ssh アクセス権がある場合は、アプリのルート ディレクトリから touch tmp/restart.txt を実行するだけでよいでしょう。

プロジェクトディレクトリ/tmp/restart.txt

任意のテキスト エディターを使用して FTP サーバー上の tmp/restart.txt を開き、Ctrl+S を押して (保存)、ファイルが変更され、サーバーが再起動されます。

または、sshアクセスを実行している場合

Rails アプリのルートから tmp/restart.txt をタッチします。


- -編集 - -

申し訳ありませんが、マシンを再起動したと言った部分が表示されませんでした。アセット パイプラインの問題である可能性が高くなります。

パブリック/アセットを削除してみてください

そして実行中

bundle exec rake assets:precompile

クリアして再コンパイルするコマンドがあると思いますが、思い出せません

また、これらの回答が役に立たない場合は、実際に何をどのように編集したかを知っておくと役立つ場合があります。cssですか?マークアップ?コントローラー?

于 2012-12-05T19:13:44.740 に答える
0

Capistrano と呼ばれるソフトウェアを使用して Rails アプリケーションをデプロイするのが一般的です。ファイルが見つかりapp/Capfileapp/config/deploy.rbアプリがそれを使用している場合。Capistrano での一般的なワークフローは次のとおりです。

  • ソース管理リポジトリからアプリケーションのローカル コピーを取得する (例: git cloneGitHub から使用)
  • ファイルをローカルで編集します(そしてテストしますが、そこにいない可能性があります)
  • コミットしてソース管理にプッシュ
  • cap deployアセットの再コンパイルなど、必要になる可能性のあるすべてのことを実行するために実行します

カピストラーノが行うこと (最も基本的な使用法) は次のとおりです。

  • にサブディレクトリを作成するyour-app-name/releases/<date-filename>/
  • ソース管理リポジトリからそのディレクトリに最新のコードを取得します (例: git pull)
  • のシンボリック リンクをyour-app-name/current新しいディレクトリへのリンクに置き換えます
  • サーバーを再起動します (Phusion Passenger を使用touch your-app-name/current/tmp/restart.txtしている場合はうまくいきます。それ以外の場合は、Web サーバーを再起動する必要がある場合があります)

別の回答で述べたように、「アセット」(CSS、JS、画像) への変更は再コンパイルする必要があります。bundle exec rake assets:precompileサブディレクトリから実行するだけで十分だと思います<your-app-name>が、うまくいかない場合はbundle exec rake assets:clean最初に実行してください。

場合によっては、capistrano とソース管理は、デプロイを実行するユーザーのローカル資格情報をデプロイで使用することを要求するように設定されます。これは、ssh-agentおよびssh-addコマンドでサポートされています。ソース管理システムがサーバーからの直接アクセスを許可していない場合は、これらが必要になります (このように設定されている場合 は、行が表示ssh_options[:forward_agent] = trueされます)。app/config/deploy.rb

もちろん、環境によっては、管理する必要がある他の多くの依存関係が存在する可能性があります。リモートで高度な環境を持っている場合でも、おそらくカピストラーノを使用して、正しい方法で展開する方法を理解する作業を行う必要があります。

于 2012-12-05T20:34:56.110 に答える