Материал в каталоге public
подается статический, оптимально вашим веб-сервер, а не Mojolicious
или Plack, так что файл не обрабатывается с помощью Mojolicious
, таким образом <% $stashvalue %>
ничего не значит.
Решение состоит в том, чтобы внедрить те части javascript, которые нуждаются в доступе к переменным на стороне сервера в шаблонах mojo - довольно уродливые, но меньше кода для записи.
Еще один способ - сделать ajax-вызов из ваших файлов javascript, когда они будут загружены, и получить значения, отправленные сервером - более изящные, но еще более написанные коды.
Еще один, что я могу думать, было бы переместить эти JavaScript файлы в папке, которая получает обрабатывается Mojolicious
и включить их параметризованных - в вашем html.ep
файл, который требуется, что JS файл, сделайте следующее:
<script type="text/javascript" src="http://example.com/url/served/by/mojo/?param1=<% $stashvalue %>¶m2=<% $stashvalue2 %>"></script>
И в контроллере, который отвечает на /url/served/by/mojo/
, визуализируйте этот js-файл с замененными параметрами теми из запроса. В качестве альтернативы вы можете сохранить/получить эти параметры также на session
Как обычно, в Perl существует несколько способов сделать это.