Я пытаюсь создать приложение (с загрузкой Spring), которое будет генерировать файлы (файлы .js), которые должны быть общедоступными.Эти файлы (после создания) должны быть доступны по ссылке на моем сервере и вставлены на чужой сайт (со ссылкой).Что-то похожее на то, как работают jQuery или Google Adwords (как они связаны с тегом html-скрипта).Таким образом, проблема, с которой я сталкиваюсь (или просто недостаток знаний), заключается в том, как динамически создавать эти файлы и делать их общедоступными.
Идея в целом такова: 1 пользователь имеет 1 папку (внутри ресурсов /папка с файлами, например) (назовем это folder1232).Внутри этой папки создаются его конкретные js-файлы (например, 111.js).Поэтому я хочу, чтобы он мог получить доступ к своему файлу, запросив URL app.com/files/folder1232/111.js.Каким будет способ сделать это?Пожалуйста, дайте мне знать, если что-то неясно.
В настоящее время я играю с папкой ресурсов, чтобы понять, как она работает в целом.Что я вижу, так это то, что файлы каким-то образом отображаются при запуске (например, если я создаю новую папку с файлом во время выполнения, она не будет доступна, пока я не перезапущу приложение).Я также пытался использовать WebMvcConfigurer, но мне кажется, что мне не хватает чего-то простого.
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/files/**")
.addResourceLocations("file:/files/")
.setCachePeriod(3600)
.resourceChain(true)
.addResolver(new PathResourceResolver());
}
}
Я ожидаю получить доступ к вновь созданным файлам (во время выполнения) из браузера.Также было бы идеально, если бы я мог иметь доступ к вновь созданным папкам (во время выполнения), а также.Но мне нужно перезапустить приложение, чтобы получить доступ к вновь созданным файлам и папкам.
ОБНОВЛЕНИЕ: то, что я пытался сделать дальше, - это создать папку вне моего проекта Java.Например: / Users /% username% / Documents / fileFold И изменил мою функцию addResourceHandler на:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/files/**")
.addResourceLocations("file:/Users/%username%/Documents/fileFold/")
.setCachePeriod(0)
.resourceChain(true)
.addResolver(new PathResourceResolver());
}
Теперь она работает отлично.Спасибо всем!ПРИМЕЧАНИЕ. Не забудьте про последнюю косую черту в функции addResourceLocations, без нее отображение не будет работать (по крайней мере, у меня не сработало).