Я смог заставить его работать, разместив свой файл для загрузки в виде * stati c контента, как я пытался раньше. Все это для Ma c, но оно будет аналогичным для других платформ.
Мне пришлось определить собственный шаблон, чтобы получить файлы на static_root
, чтобы их можно было обслуживать. Соответствующая документация находится здесь для настройки пользовательского шаблона.
Это не сложно ... вы по сути создаете каталог, где он ожидается, копируете некоторые файлы по умолчанию, затем добавляете / изменить то, что вы будете. запись терминала может выглядеть примерно так:
cd ~/Library/Jupyter/voila/templates/
mkdir foobar
export DEFAULT_TEMPLATE_PATH=~/anaconda3/envs/voilatest/share/jupyter/voila/templates/default
export TEMPLATE_PATH=~/Library/Jupyter/voila/templates/foobar
cp -r $DEFAULT_TEMPLATE_PATH/nbconvert_templates $TEMPLATE_PATH
cp -r $DEFAULT_TEMPLATE_PATH/templates $TEMPLATE_PATH
, где дерево будет выглядеть так в моем новом пользовательском шаблоне:
{~/Library/Jupyter/voila/templates/foobar}$ tree .
.
├── nbconvert_templates
│ ├── base.tpl
│ ├── lab.tpl
│ └── voila.tpl
├── static
│ └── demo.xlsx
└── templates
├── 404.html
├── browser-open.html
├── error.html
├── page.html
└── tree.html
3 directories, 9 files
обратите внимание на каталог static
с demo.xlsx
, Я добавил это в. Это файл, который я хотел скачать по ссылке.
Запуск вуаля, как это ...
voila mynotebook.ipynb --template=foobar
Сейчас .. в mynotebook .ipynb
Используйте тег HTML Anchor для загрузки . По крайней мере, FileLink
терпит неудачу для меня со следующей ошибкой.
Путь (/voila/static/demo.xlsx) не существует. Возможно, он все еще находится в процессе создания, или у вас неправильный путь.
, что неудивительно, поскольку фактический путь к файлу хранится в isn ' т то. Это просто случайный контент URI.
%%html
<a href="./voila/static/demo.xlsx" download="demo.xlsx">Download Excel Sheet</a>
Использование якоря сделает его жестко запрограммированным, и у меня не было никаких проблем. Я также смогу стилизовать якорь больше в любом случае. Один улов ... Это больше не работает в обычной записной книжке, так как это URI обслуживаемого ресурса в вуаля.