Как и где включить CSS и JS файл в инфраструктуру NETTE? - PullRequest
0 голосов
/ 23 апреля 2019

Я столкнулся с проблемой добавления внешних файлов в шаблон в Nette, когда использовал традиционный способ добавления внешних файлов. Либо я добавил эти ссылки в неподдерживаемый файл (шаблон не является тем местом, куда их следует добавлять), либо используется неверный формат.

Я попытался реализовать css и js внутри шаблона (latte), который работал хорошо. Однако мне нужно, чтобы они были добавлены извне.

{block script}

  <link rel="stylesheet" type="text/css" href="..\sass\components\file.scss">

  <script src="..www\assets\js\file.js"></script>

{/block script}

1 Ответ

1 голос
/ 23 апреля 2019

Вы должны понимать, что пути в файловой системе сервера не зависят от URL-адресов, которые вы будете отправлять браузеру в шаблонах, и которые браузер будет использовать для дальнейших HTTP-запросов.

Например, в обычном сценарии с приложениями Nette файлы в / будут искать под чем-то /path/to/your/project/directory/www; Некоторые пути файловой системы, например, все, что находится вне каталога www, даже не имеют соответствующего URL.

По умолчанию Latte не знает, какой файл соответствует какому URL, поэтому он сохраняет атрибуты src и href в точности так, как они записаны. Это означает, что вам нужно убедиться, что вы используете правильные URL-адреса самостоятельно.

Для вашего удобства Nette автоматически устанавливает переменную $basePath в шаблонах Latte:

{block script}

  <link rel="stylesheet" type="text/x-scss" href="{$basePath}/sass/components/file.scss">

  <script src="{$basePath}/assets/js/file.js"></script>

{/block script}

Переменная будет указывать на общедоступный корневой каталог вашего приложения (каталог www/), что упрощает поиск URL-адресов.

Также обратите внимание, что вы должны использовать прямую косую черту в URL-адресах, и вы, вероятно, захотите ссылаться на встроенную таблицу стилей вместо компонентов SASS.

...