2016-11-10 2 views
1

私はSymfony2の新機能で、既存のCodeIgniterサイトで現在実行中のものすべてを書き直すのに苦労しています。新しいSymfony2バージョン用のsymfony2へのリンク。Symfony2(バージョン2.8.13):CSS、JS、Imageファイルをどこに配置してアクセスするか分からない

Symfony2バージョン2.8.13をリモートサーバにインストールした後、私のコンピュータのChromeブラウザでapp.phpとapp_dev.phpページを正常に実行できました。私はSymfony2の学習を始めるために「最初のページを作成する」手順を使用しました。その知識を徐々に適用して、私の新しいSymfonyサイトで実行するために私の古いCodeIgniter index.phpページを書き直し始めました。

古いCodeIgniterサイトでは、主にphp、css、javascript、jquery、いくつかのプラグイン、およびいくつかのCodeIgniter関数を使用してサポートデータベースに接続し、出力ページをレンダリングしていたため、小枝の眺め。

代わりに、私はCodeIgniterコントローラとビューファイルの 'ロジック'を格納するためにSymfonyコントローラを使用しています。後でコントローラ/ビューファイルを複数のファイルに分割し、元々CodeIgniterサイトで使用されていた再利用可能なコンポーネントファイルを作成しますが、Symfony2フレームワークを使用するように書き直していきます。ここで述べたことのすべてに

は、私の質問は以下のとおりです。

1)私はどこのJavaScript(JS)のためのサードパーティ製のプラグインファイルを見つけるにレンダリングウェブページ「を伝える」どうすれば、画像、css、私がベンダのディレクトリの下に置いた他のファイル?私はこれを行うために作曲者を使用しませんでした。そのほとんどは、私がCodeIgniterサイトからコピーしたファイルでした。

2)レンダリングされたWebページに、src/projectディレクトリの下に置かれた非サードパーティのmain.cssファイルを見つける場所を教えてください。

3)レンダリングされたWebページに、src/projectディレクトリの下に置かれたサードパーティ以外のイメージファイルを見つける場所を教えてください。

私は、ベンダー製品と密接に結びついていないjavascript、images、cssファイルをいくつかの異なる場所に置くことができます。その1つはapp/Resourcesディレクトリですが、特に明快にするために私はまだCodeIgniterサイトのページを変換していますが、src /の下にあるページ固有のディレクトリに置かれていて、少なくとも私にとっては、それらすべてをResourcesディレクトリにダンプするよりもはっきりと直接的です。私はこの種のファイルを自動化するためのツールAsseticを知っていますが、Symfony2バージョン2.8.xでは自動的にインストールされなくなり、非ベンダーのファイルも関連バンドルと密接に結びついていると私は確信していません。

リソースディレクトリとバンドルの間にシンボリックリンクを作成するという別の解決策がありましたが、リンクの方向と作成されたディレクトリのレベルがわかりませんでした。

余分なツールや不要な抽象化レベルに頼ることなく、これらのリソースを管理する上で必要なことを理解できますか?

最後に、私はCodeIgniterから来ているので、CodeIgniterでさまざまなことがどのように行われたのか、そしてCodeIgniter関数呼び出しに関して、Symfony2でそれらの同じまたは同様のことをどうやって行うべきであるかについてのチートシートはありますか?

は========================================あなた

ありがとうございました===============

トーマスの応答にフォローアップ。

ありがとう、トーマス。

私はまだSymfonyのすべての言葉にはまだ立ちません。 MyBundleと言えば、そのディレクトリはどこにありますか?

の/ var/www /のバーチャルホスト/ Symfony2の/ SRC/AppBundle /コントローラまたは は/ var/www /のバーチャルホスト/ Symfony2の/アプリ

のみappディレクトリには、リソースのサブディレクトリを持っているか、私はコントローラの下に置けばいいの最初のパスのディレクトリ?

私はapp/consoleコマンドを使用する前に、これを真っ直ぐにしたいと思います。

また、私はtwigを使用していないので、{%%}表記を使用してhtmlリンクとimgタグがファイルを取得する場所を指定できますか?私がもともと言ったように、私は現時点で私のHTMLステートメントを小枝に変換したくないので、htmlはすでに終了しています。結果のページはまさに私が望むものです。

もう一度おねがいします。

P.S.私はコメントで応答しようとしましたが、改行と余分なスペースをすべて取るため、うまく機能しません。元の投稿された質問を編集せずにこのスレッドに追加する方法がなければならないことは知っていますが、自分の質問に答える以外に何も表示されません。だから、誰かがとても親切で、このスレッドに自分の回答を追加する方法を教えてください?

答えて

1

良い方法は、それを削除することができて、あなたが/更新作曲をインストールしない場合は、直接、ベンダーのディレクトリにファイルを置くべきではありませんし、それがすべてでは良い習慣ではありませんsymlinks

ファーストを使用しています。

これらのリソースを使用して、またはアプリケーションフォルダのResourcesフォルダ内のバンドルのResourcesフォルダにパブリックフォルダを作成します。

MyBundle/Resources/public 

その後、このフォルダ内のリソースを入れ、たとえば私はCMDを実行し、

--symlinkオプションで

app/console assets:install 

次のコマンドラインを使用するとjs/jquery.min.js

を入れて、すべての資産をWebフォルダにインストールします。

アセットにアクセスするには、たとえば、Twigビューで{{ asset('myfolder/js/jquery.min.js' }} を使用します。 これが役立つことを願っています。

Asseticを使用して資産を管理する方法については、公式文書を参照することもできます。

http://symfony.com/doc/current/assetic/asset_management.html

http://symfony.com/doc/current/best_practices/web-assets.html


EDIT:

私はまだ、アップsymfonyの条件のすべてにまだいませんよ。 MyBundleと言うと、そのディレクトリはどこにありますか?

私はあなたがあなたのアプリケーションバンドルを作成したと仮定したフォルダをMyBundleを参照するとき、あなたはおそらくsymfonyアプリケーションの基本的なアーキテクチャを説明し、このページ(http://symfony.com/doc/current/quick_tour/the_architecture.html)を見てみる必要があります。基本構造で新しいバンドルを生成するには、このページ(http://symfony.com/doc/current/bundles/SensioGeneratorBundle/commands/generate_bundle.html)に従います。

アプリケーションディレクトリにはResourcesサブディレクトリがありますか、または を最初のパスのControllerディレクトリに置きますか?

私が与えたリンクで説明されている手順でアプリケーション用の新しいバンドルを作成すると、バンドルフォルダにResourcesディレクトリが作成されます。また (アプリ内の新しいバンドルを作成する必要はありません場合は、symfonyは自動的に作成AppBundleディレクトリを使用することができます)

、私はまだ{%を使用することができ、私は、小枝を使用していないので、 %}表記を に設定します。htmlリンクとimgタグがファイルを取得する場所を指定しますか?私が と言ったように、今度は でhtmlステートメントを小枝に変換したくないので、htmlはすでに終了しています。結果のページは です。

symfonyにはテンプレートエンジンのような枝が付いていますが、それを使用したくない場合は可能です。私はこのリンクがあなたに役立つかもしれないと思う(http://symfony.com/doc/current/templating/PHP.html){%%}がtwig構文であることを知っておくべきであるので、あなたがtwigを使用していない場合には使用できないと思います。

これが役に立ちます。

+1

ありがとう、トーマス。 –

関連する問題