2017-07-03 20 views
0

私は、次のルートでローカルホスト上のプロジェクトを持っている:ローカル環境のルートはlocalhostで動作しますか?

と私は現在、次のようにJavaScriptからアプリケーションにデータを投稿:これはすべてのために働く

// Centralised, referenced from each javascript file: 
var baseUrl = 'http://127.0.0.1/projects/PROJECT_NAME/web/app_dev.php'; 

// The signup post URL is generated like this: 
var postUrl: baseUrl + "/signup", 

localhost上のファイル。

質問:

  • このプロジェクトは生きて行く、これらのURLはまだ動作しますか?
  • baseUrlを記述するためのクリーンな方法はありますか?プロジェクトの公開時に変更する必要はありませんか?

これが明らかな場合は謝罪しますが、現在のところlocalhostのみで動作します。どんな提案も大歓迎です。 Symfony 3アプリケーション、XAMPPサーバー、OSX

編集:

$ .ajaxを使用してサーバーに投稿します。

+0

これは、本番環境の設定に完全に依存します。 – ceejayoz

+1

A. BにはベースURLを含む設定ファイルがあります – rtfm

+1

あなたの呼び出しに使用しているものがわかりません。 '$ .ajax()'は相対URLと[XMLHttpRequest.open()]を受け取ります(https:// xhr.spec.whatwg.org/#request-url)は、URLが絶対的である必要があることを指定していないので、相対URLである可能性もあるので、相対URLで逃げることができます環境 –

答えて

1

あなたのプロジェクトの仮想ホストを作成し、そのWebルートをプロジェクトのWebフォルダに設定し、そのプロジェクトからプロジェクトにアクセスすることを強くお勧めします。

ここではMacOSのためにXAMPPでそれを行う方法についての素敵なチュートリアルです: http://jonathannicol.com/blog/2012/03/11/configuring-virtualhosts-in-xampp-on-mac/

すなわち:これは、単に、その後http://myproject.local/signupとして扱われますvar postURL: "/signup"を書き込むことによって、あなたのURLにアクセスできるようになりますhttp://myproject.local

あなたのローカル環境ではhttp://myprojectlive.com/signupです。

これで、設定やコーディングのトラブルを大幅に削減できます。

1

プロジェクトが公開されると、ローカルホストのURLは絶対に機能しません。

あなたがすべきことは、開発時にlocalhost URLを使用し、サイトが稼動しているときに本番URLを挿入するビルドプロセスがあることです。そして、あなたはその変数をインポートし、おそらく割り当てたい

module.exports = merge(devEnv, { 
    URL: '"http://example.com"' 
}) 

:生産中

module.exports = { 
    URL: '"http://127.0.0.1"' 
} 

そして、この:WebPACKのを使用して

は、例えば、あなたが開発中のこのような何かをしたいですそれはもっと簡潔で説明的なものになります。

const baseUrl = process.env.URL 

たとえば、次のようなサブディレクトリなどで連結してリクエストを行う場所で変数を使用します。

`${baseUrl}/projects/PROJECT_NAME/web/app_dev.php` 
関連する問題