Как обратиться к CSS начальной загрузки, который был загружен как зависимость gradle?
Мой вопрос заключается в том, что я не уверен, как ссылаться на загрузочную библиотеку, которая находится во "Внешних библиотеках" в моем проекте.
В файле build.gradle я добавил:compile group: 'org.webjars', name: 'bootstrap', version: '3.3.7'
поэтому библиотека начальной загрузки была загружена. Но когда я хочу сослаться на него в html-файле и попытаться использовать функцию копирования пути, я получаю это:
C:\Users\Michael\.gradle\caches\modules-2\files-2.1\org.webjars\bootstrap\3.3.7\d6aeba80236573ed585baa657dac2b951caa8e7e\bootstrap-3.3.7.jar!\META-INF\resources\webjars\bootstrap\3.3.7\css\bootstrap.css
Также пробовал этот "стандартный" путь (не работает):
<link rel="stylesheet" href="../css/bootstrap.min.css">
Я использую Intellij (Gradle Project)
1 ответ
Gradle загружает и хранит зависимости локально. Он ссылается на артефакты из кэша всякий раз, когда это необходимо, IDE и компилятор получают путь к артефакту из кэша. Ссылка, которую вы в итоге включили, ссылается на файл из архива в кеше. Это не то, что понимает браузер.
Вам нужно использовать задачу копирования, чтобы разместить ее где-то в своем проекте, где вы сможете получить к ней доступ, или упаковать ее вместе с остальной частью вашего веб-сайта. Копирование конкретной зависимости уже решено. Вам нужно будет дополнительно извлечь артефакт. В документации есть примеры того, как читать содержимое архива.
Вот как может выглядеть законченное решение:
apply plugin: "java"
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.webjars', name: 'bootstrap', version: '3.3.7'
}
task copyBootstrap(type: Copy) {
configurations.compile
.files({ it.group.equals("org.webjars")})
.each {
from zipTree(it)
}
into "$buildDir/static_resources"
}
Это помещает файл, который вы ищете, в следующую папку в моей системе (Gradle 2.14.1):
build/static_resources/META-INF/resources/webjars/bootstrap/3.3.7/css/bootstrap.min.css
В случае, если вы хотите извлечь только конкретный файл или избавиться от номера версии, для упрощения обращения к нему это также возможно.
Обратите внимание, что это хорошая идея для извлечения в $buildDir
поскольку с большинством плагинов, включая java, он автоматически очищается с помощью задачи "Очистить", и его сложнее случайно зафиксировать.