У меня есть Java-приложение, которое может работать как обычное Java-приложение Swing, но создает стандартный отчет html5, который открывается в веб-браузере.
* 1003 например *
URL-адрес браузера:
Файл: /// C: /Users/Paul/AppData/Roaming/SongKong/Reports/FixSongsReport00574/FixSongsReport00574.html
В качестве части этого он использует звуковую метку, позволяющую воспроизводить песню в браузере
<h5>
<audio controls="controls">
<source src="file:/E:/Test4/test.WAV">
</audio>
</h5>
и это прекрасно работает.
Но приложение также может работать с Html-интерфейсом пользователя, затем оно запускает веб-сервер, используя Java Spark на порту 4567, если затем я работаю с точно таким же отчетом (да, на самом деле я обслуживаю файлы одинаково файлы на диске) на тот же компьютер, поэтому аудиофайл является локальным для компьютера, и он больше не будет воспроизводить песню.
Это будет URL-адрес браузера
http://localhost:4567/FixSongsReport00574/FixSongsReport00574.html
Так почему же, так как я указываю полный путь в элементе source и поэтому не понимаю, почему на него будут влиять такие факторы, как, например, откуда поступают статические файлы.
Но в случае необходимости это метод запуска java-spark
CustomJettyServerFactory customJettyServerFactory = new CustomJettyServerFactory();
EmbeddedServers.add(
EmbeddedServers.Identifiers.JETTY,
new EmbeddedJettyFactory(customJettyServerFactory));
staticFiles.externalLocation(Platform.getPlatformReportFolder().getPath());
staticFiles.location("");
staticFiles.expireTime(600);
SongKong.songKong.setRemote(true);
StartPage.recreateIndexPage();
init();
configureWebEndPoints();
configureApiWebEndPoints();
before((request, response) -> {
MainWindow.logger.severe(">>>>>"+request.uri());
});
listenForFinish();
Следующий вопрос заключается в том, что, хотя я не понимаю, почему он не работает на локальном компьютере, я вижу, что, если бы он подключался через удаленный браузер, он не работал бы, потому что URL файла относительно сервера а не клиентский компьютер, как бы я сделал файл воспроизводимым в таком случае.