Mojolicious::Lite - вопрос с картинкой

Когда я запускаю этот скрипт и открываю http://my_server/picture, я получаю вместо картинки logo-строку.

#!/usr/local/bin/perl
use warnings;
use 5.014;
use Mojolicious::Lite;

get '/picture' => sub {
    shift->render();
};

app->start;

__DATA__
@@ picture.html.ep
<!DOCTYPE HTML>
<html>
<body>
<p>Hello</p>
<img src="/absolute/path/TEST.jpg" alt="logo" />
<p>World</p>
</body>
</html>

Когда я открываю этот HTML-файл как обычный HTML-файл, я получаю картинку.

Как правильно вставить картинку с помощью Mojolicious::Lite?


person sid_com    schedule 23.08.2011    source источник


Ответы (2)


Каталог public предназначен для статических данных. Просто создайте его рядом со своим скриптом и вставьте изображение. Когда сервер разработки работает с настройками по умолчанию, вы можете получить к нему доступ по URL-адресу:

http://localhost:3000/TEST.jpg

Таким образом, ваш шаблон может содержать:

<img src="/TEST.jpg" />
person bvr    schedule 23.08.2011

Или вы можете использовать: в кодировке Base64 Файлы ДАННЫХ:

...
__DATA__
@@ picture.html.ep
<!DOCTYPE HTML>
<html>
<body>
<p>Hello</p>
<img src="/absolute/path/TEST.jpg" alt="logo" />
<p>World</p>
</body>
</html>

@@ TEST.jpg (base64)
/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAD6APoDASIA
...
person vitas    schedule 03.10.2014