0

Ubuntuのzendフレームワーク2チュートリアルプロジェクトには、次のフォルダー構造があります。

/zf2tutorial
    /module
        /Album
            /view
                /album
                    /album
                        myImage.png
                        index.phtml

私のindex.phtmlコードには、次のような行があります。

<img alt='SMALLIMG' src='myImage.png'/>

これは動作しません。

myImage.pngを変更すると、http://www.someurlhere.comこれで問題なく動作します。

代わりにmyImage.pngをロードするにはどうすればよいですか?私はそれに直接URLを与えてみました:

/home/myUsername/NetBeansProjects/zf2tutorial/module/Album/view/album/album/myImage.png

私も次のことを試みました:

../myImage.png

しかし、これらはどちらも機能しませんでした。

また、壊れた画像のアイコンが表示されるため、パスが間違っている必要があります(ここで何か間違ったことをしている必要があります)...ここにリンクの問題があることを示しています..直接URLはのプロパティセクションからコピーして貼り付けられています画像自体..

4

6 に答える 6

3

画像やパスの問題ではありません。あなたは不可能なことをしようとしています。

確かに、仮想ホスト構成で、documentRootがパブリックディレクトリであることを定義します。

つまり、Webサーバーは、このパブリックディレクトリにあるリソースへのアクセスを許可します。

このパブリックパス(css、images ..)からリソースを配置する必要があります。または、followingSymlinksを許可する場合は、シンボリックリンクを定義できます。

お役に立てれば。

于 2012-12-26T06:46:37.967 に答える
3
<img alt=""  src="img/2 header960.png" align="center" >
于 2013-01-31T11:41:08.863 に答える
2

あなたが混乱させている根本的な問題は、ビューとパブリックコンテンツの違いです。

ビューファイルは基本的に、実行時に特定の値を挿入できるHTMLテンプレートです。ディレクトリ構造はviews、モジュール内のディレクトリ内にこれらのものを正しく配置します。これらのテンプレートファイル自体がエンドユーザーに公開されることはありません。これらは、最終的にブラウザに送信される完全に入力されたHTMLチャンクを生成するためにアプリケーションによってのみ使用されます。

対照的に、画像、JavaScript、外部スタイルシートなどの静的アセットは、Webサーバーから訪問者に直接提供されます。そのため、Webサーバーが訪問者に公開するように指示されているディレクトリに配置する必要があります。

簡単な方法は、これらの静的アセットを含むディレクトリをモジュールからアプリのpublicフォルダに移動することです。

ただし、これは、モジュールを自己完結型のエンティティにする必要があるという意味で望ましくありません。モジュールには、独自のルート、独自のコントローラー/アクション、特に独自の静的アセットを含めることができます。

では、Webサーバーをモジュールに到達させ、そこにあるコンテンツの一部を「パブリック」として扱うにはどうすればよいでしょうか。

public答えは、特定のモジュールコンテンツをアプリのディレクトリにリンクするコンポーネントである「アセットマネージャー」を使用することです。通常、これは次のことを意味します。

  1. アセットマネージャーモジュールをアクティブ化する
  2. モジュール内にpublicディレクトリを作成します
  3. それらの静的アセットをそこに配置します
  4. どのパブリックモジュールディレクトリをパブリックアプリディレクトリに入れるかをアセットマネージャーに通知します。

RobertoWesleyOverdijkによるAssetManagerモジュール追加の使用手順をご覧ください。

[補足として、Web開発の世界へようこそ。ZF2は優れたフレームワークですが、初心者にとって最も簡単なものではありません。それは「良い方法」で物事を行うための多くの柔軟性を提供しますが、それは確かに最初は複雑なものとして外れる可能性があります。落胆しないようにしてください。;-)]

于 2012-12-26T07:43:29.243 に答える
0
<div id='small_image'>
    <a href='/feeds/posts/default' title='smallimg'>
        <img alt='SMALLIMG' src='c:/home/myUsername/NetBeansProjects/zf2tutorial/module/Album/view/album/album/myImage.png'/>
    </a>
</div>
于 2012-12-26T06:12:20.240 に答える
0

dirのどこかで.htaccessファイルを探してみてください。おそらくモジュールフォルダにあります。そのファイルは、リンクしようとしている画像へのアクセスをブロックします。パスが正しい場合)

たとえば、ホームディレクトリにimagesフォルダを作成して/ zf2tutorial / imagesを作成し、そこにすべての画像を配置して、src = "/ images/myImage.png"と呼びます。

また

話しているhtaccessimを見つけ、制限を変更(または削除:|)すると、次のパスを使用できます:src = "/ module / Album / view / album / album/myImage.png"。

于 2012-12-26T06:25:45.040 に答える
0

理由は画像拡張子(.png)である可能性があります

あなたの正確な延長ケースをチェックしてください、それは小さなケースで書かれていますか、それとも大文字で書かれていますか?

画像の名前とまったく同じように画像のリンクを更新します。

例えば。

myImage.pngまたはmyImage.PNG

于 2012-12-26T06:30:42.003 に答える