Как связать файл CSS с HTML - PullRequest
0 голосов
/ 12 июня 2019

В моем приложении GWT на стороне клиента я генерирую строку, содержащую содержимое HTML, и передаю ее функции, которая открывает ее в новой вкладке.Я написал файл CSS для стилизации содержимого HTML и дал ссылку на него.Но мой HTML-файл не получает стилизацию.

public void writeHtml(){
    StringBuffer html = new StringBuffer();
    html.append("<!DOCTYPE html>");
    html.append("<html lang=\"en\">");
    html.append("<head>");
    html.append("<title>Hello World</title>");
    html.append("<meta charset=\"utf-8\">\n" +
                "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n");

    html.append("<link href=\"StyleSheet.css\" rel=\"stylesheet\" type=\"text/css\">");

    html.append("</head>");
    html.append("<body>\n" +
                "\n" +
                "<h1>This is a heading</h1>\n" +
                "<p>This is a paragraph.</p>\n" +
                "\n" +
                "</body>\n" +
                "</html>");
    openPrintWindow(html.toString());
}

public native void openPrintWindow(String contents) /*-{
    var printWindow = window.open("", "PrintWin", false);
    printWindow.document.open("text/html","replace");
    if (printWindow && printWindow.top) {
        printWindow.document.write(contents);

    } else {
        alert("The print feature works by opening a popup window, but our popup window was blocked by your browser.  If you can disable the blocker temporarily, you'll be able to print here.  Sorry!");
    }
}-*/;

Файл CSS - StyleSheet.css

h1 {
  color: blue;
  font-family: verdana;
  font-size: 300%;
}
p  {
  color: red;
  font-family: courier;
  font-size: 160%;
}

Итак, в чем проблема и в чем проблема?

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

В одном из ваших комментариев вы написали:

Оба файла присутствуют в одной папке.Итак, я думаю, что путь правильный.

Это не так.Вам нужно отличить вашу папку source от папки public .Было бы очень небезопасно, если бы вы могли связать файлы в папке source и сделать их доступными для загрузки.

Вы должны прочитать о Стандартный каталог и макет пакета .Там вы найдете:

папка src - содержит рабочий исходный код Java

war folder - ваше веб-приложение;содержит статические ресурсы, а также скомпилированный вывод

Это означает, что вам необходимо поместить файл StyleSheet.css в папку war.

После копирования файла StyleSheet.cssв папку war (и исправление некоторых опечаток в опубликованном вами коде - см. мое редактирование), я получил это в качестве доказательства того, что он работает:

enter image description here

В качестве дальнейшего чтения я предлагаю Public Path часть Модулей: Единицы конфигурации документации.


После всего сказанного: было бы намного легче, если бы выпросто создайте статический html-файл в папке war и откройте новое окно со ссылкой на этот файл в качестве параметра.

0 голосов
/ 12 июня 2019

Вы написали html..append ("");вместо html.append ();

Отвечает ли это вашей проблеме?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...