-1

私のコードはこれです:

$.getJSON("/somefolder/somefile.json?"+urlParams, function(json) {
    //populate combo here
});

私はsassを使用してRailsに取り組んでおり、このコードを含むファイルはもともとfile.jsですが、パイプラインアセットを操作するために、すでにfile.js.erbに変更しています

開発では私は働いてhttp://localhost:XXXXいるので、結果は問題ありません。Prod ではフォルダーを使用しているhttp://domain.com:XXXX/appため、結果がうまくいきません。

次のようなコーディング<%=image_tag("loading.gif", :class => "loading")%>はこのファイルで完全に機能しますが、そうで$.getJSON("<%= controller_method_path %>.json?"+urlParamsはありません

なにか提案を?

4

1 に答える 1

2

運用環境でプレフィックスを使用するようにルートが設定されていると仮定すると、フル パスには実際のルーティング方法を使用する必要があります。

$.getJSON("<%= thingies_url(@thingy, :json) %>?"+urlParams, ...

これで、すべてのケースでパス全体が適切に生成されるはずです。


しかし、ドメインのサブディレクトリで Rails アプリを実行することが通常は推奨されないのは、このような狂気からです。これにより、他のページやアセットへのルーティングと相対リンクが頭痛の種になります。

代わりにサブドメインで Rails アプリをホストできる場合。

# not awesome :(
http://mydomain.com/myapp

# totally awesome! :D
http://myapp.mydomain.com/
于 2012-12-19T17:39:19.033 に答える