2017-10-11 6 views
0

私は反応/アプリケーションを作成してExpress.js/live reloading etc(開発用)に反応する/ PHPプロジェクト(apache上で実行されました) 。PHPを使ってcreate-react-appと画像を動的にロード

このプロジェクトでは、ユーザーからアップロードされた画像があり、ロードするファイルの名前をクエリー文字列として受け入れるphpファイル経由でドキュメントルートの外に保存されます。

file.php?image=file_name.png 

その相対の反応成分は

const Img = (props) => { 

    const findFile =() => { 
     // base64 
     if(props.file && props.file.startsWith('data:image/')){ 
      return props.file; 
     } 

     return "file.php?name=" + props.file + "&type=" + props.type; 
    }; 

    return (
     <img src={findFile()} alt={props.alt || props.file}/> 
    ); 

}; 

作成反応するアプリに移行した後で、私は、package.json

"proxy":"http://localhost" 

ではなく、このようにプロキシを追加しました画像は、ユーザーがダッシュボードページにいるときにのみ読み込まれます。他のページでは、file.phpのパスを変更するため、イメージは機能しません。ダッシュボードで

(のhttp:/ localhostの/ AUTH)他のページで

127.0.0.1 - - [10/Oct/2017:23:59:12 +0200] "GET /file.php?name=avatar4.png&type=avatarDefaultDir HTTP/1.1" 200 12295 

(例:http://localhost/auth/profile

127.0.0.1 - - [10/Oct/2017:23:59:17 +0200] "GET /auth/file.php?name=avatar4.png&type=avatarDefaultDir HTTP/1.1" 200 27 

どのように私は可能性がこの問題を解決するには?あなたはfile.phpファイルへの正しいパスを使用して、代わりにこれを想定している

return "file.php?name=" + props.file + "&type=" + props.type; 

使用

return "/file.php?name=" + props.file + "&type=" + props.type; 

のfile.php

への絶対パスを使用する必要が

+0

絶対URLを使用してください – madalinivascu

答えて

0

file.phpはプロジェクトのルートにあります

関連する問題