コントローラーで render_to_string を使用して html ファイルを作成し、send_data を使用して html ファイルをユーザーに送信しました。それはうまく機能し、返されたファイルは、ブラウザーで右クリックしてページのソースを表示したときに表示される html と一致します。ただし、html ファイルには、app/assets フォルダーに存在しない css ファイルと .js ファイルへのリンクがあります。
たとえば、html ファイルには application.css へのリンクがありますが、app/assets フォルダーには application.css.scss しかありません。または別の例。lightbox.css の代わりに lightbox.css.erb。
また、html の一部のパスが間違っています。たとえば、画像は app/assets/images にありますが、html は app/assets を探しています。生成されたhtmlをnokogiriで編集するだけなのでパスは問題ないのですが、なぜ違うのか気になります。
これは私がやりたいこととほとんど同じですrails:「ページを名前を付けて保存」動作をエミュレートします
html を別の方法で取得していて、何らかの理由で探しているアセットが見つからないことを除いて。前に示したように、html は有効に見えます。ファイルを開くと、html からのテキストが表示されますが、リンク パスを変更するまで画像やアセットは表示されません。
私が読んだことによると、Rails は scss を css に変換し、erb ファイルを js または html にレンダリングします。ただし、これらのファイルはディレクトリのどこにも見つかりません。Rails アプリから独立して静的 html ファイルを表示するために必要なファイルを生成するにはどうすればよいですか?
Rails 3.2.2 と jruby 1.6.7 (ruby 1.9.2) を使用しています