질문을 삭제하지 말아주세요.!
 
1
0
-1

안녕하세요 책을 구입후 슬슬 잘 따라 가고 있었는데 이미지가 포함된 마크 다운에서 좌절을 맛보고 있습니다.

(일단 저는 라라벨 5.4를 설치했고 리눅스 nginx 서버 환경에서 연습하고 있습니다. 깃은 사용하지 않고 로컬에서ftp로 작업하고 있습니다.)

일단 문제는

여기서 이미지가 나오지 않습니다. http://www.tuttut.co.kr/docs/foo


어떤 에러메세지라도 나와야... 디버깅을 해볼텐데.. ㅠㅠ

책에서 나온 그대로 전부 입력했는데 에러도 안나고 이미지만 안나오니 눈물이 앞을가려 더이상 진도를 못 나가고 있습니다.

183페이지에서 이미지를 담고 있는 디렉터리를 docs/images, 이미지 파일 이름은  ~ 로 가정하자. 이렇게 해서 실제로 디렉터리를 파고 이미지를 집어 넣었습니다. 

이터벤션 이미지 컴포넌트 문제일까요? 깃으로 자료를 받지 않고 zip파일로 받아서 문제가 되는 걸까요? 그리고 책에 나와있는 코끼리 이미지는 어디서 구하는 건가요? ← (이부분이 문제인지도 모릅니다ㅠㅠ)


<?php

namespace App;

use File;

class Documentation
{
public function get($file ='documentation.md')
{

$content = File::get($this->path($file));

return $this->replaceLinks($content);
}

public function image($file)
{
return \Image::make($this->path($file, 'docs/images'));
}

protected function path($file, $dir='docs')
{
$file = ends_with($file, ['.md', '.png']) ? $file : $file. '.md';
$path = base_path('docs'. DIRECTORY_SEPARATOR. $file);
if (! File::exists($path)){
abort(404, '요청하신 파일이 없습니다');


}
return $path;
}

protected function replaceLinks($content)
{
return str_replace('/docs/{{version}}', '/docs', $content);
}
}


----------------------------

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class DocsController extends Controller
{
protected $docs;

public function __construct(\App\Documentation $docs)
{
$this->docs = $docs;

}

public function show($file = null){
$index = \Cache::remember('docs.index', 120, function (){
return markdown($this->docs->get());
});

$content = \Cache::remember("docs.{$file}", 120, function () use ($file) {
return markdown($this->docs->get($file ?:'installation.md'));
});

return view('docs.show', compact('index', 'content'));
}

public function image($file)
{

$image = $this->docs->image($file);

return response($image->encode('png'), 200, [
'Content-Type' => 'image/png'
]);
}
}


-------


    CommentAdd your comment...

    1 answer

    1.  
      0
      -1
      -2

      이미지 파일은 _docs 폴더에 있습니다. 20장 시작 부분을 놓치신듯하네요. 아래 명령으로 복사하시면 됩니다.


      cp -r _docs/* docs/
      1. 임현진

        네 감사합니다다. 제 이미지 파일에 문제가 있는지 알아서 교체 했지만 역시나

        이미지가 표시가 안됩니다. ㅠㅠ

        http://www.tuttut.co.kr/docs/foo

        페이지 소스코드도 정상인데 이미지 표시가 안되네요.

        <article><h1>이미지가 포함된 마크다운</h1> <p><img src="images/foo-img-01.png" alt=""></p> <p>그림 1 PHP 마스코트</p></article>

        물론 본문에 첨부해드린 사진처럼 해당 디렉터리에 이미지도 있고요.. docs/images/foo-img-01.png


      2. 임현진

        아 찾았습니다. 185쪽 코드 20-7에서 $dir 파라미터를 넘겼는데 base_path 인자는 수정없이 그대로 'docs'를 썻네요 ㅠㅠ 감사합니다 다시 진도 빼겠습니다. (big grin)

      3. 이윤

        저도 완전히 똑같은 문제로 애먹고 있었는데 덕분에 찾았네요 감사합니다!

      CommentAdd your comment...