Какая версия svg используется, когда не указывается версия [duplicate]

Похоже, что что-то не так с вашей конфигурацией, вот несколько вещей, которые вы можете проверить:

  1. Убедитесь, что PHP установлен и работает правильно. Это может показаться глупым, но вы никогда не знаете. Простой способ проверить - запустить php -v из командной строки и посмотреть, возвращает ли информация о версии или какие-либо ошибки.
  2. Убедитесь, что модуль PHP указан и раскомментирован внутри вашего httpd.conf Apache. должно быть что-то вроде LoadModule php5_module "c:/php/php5apache2_2.dll" в файле. Найдите LoadModule php и убедитесь, что перед ним нет комментария (;).
  3. Убедитесь, что в файле httpd.conf Apache есть PHP MIME-тип. Это должно быть что-то вроде AddType application/x-httpd-php .php. Это говорит Apache, чтобы запустить .php файлы как PHP. Найдите AddType, а затем убедитесь, что есть запись для PHP, и что она раскоментирована.
  4. Убедитесь, что ваш файл имеет расширение .php на нем или любое расширение, указанное в определении MIME в point # 3, иначе он не будет выполняться как PHP.
  5. Убедитесь, что вы не используете короткие теги в файле PHP (), это не включен на всех серверах по умолчанию, и их использование не рекомендуется. Вместо этого используйте (или включить короткие теги в вашем php.ini с short_open_tag=On, если у вас есть код, который их использует).
  6. Убедитесь, что вы обращаетесь к своему файлу через ваш веб-сервер, используя URL-адрес, такой как http://localhost/file.php, не через доступ к локальному файлу file://localhost/www/file.php

И, наконец, проверьте Руководство по PHP для дальнейших советов по настройке .

125
задан Deduplicator 11 February 2015 в 00:05
поделиться

3 ответа

Все UA игнорируют атрибут версии, поэтому вы всегда можете отказаться от этого.

Если вы встраиваете свой SVG встроенный в HTML-страницу и обслуживаете эту страницу как text/html, то атрибуты xmlns не являются требуется . Внедрение SVG inline в HTML-документах - это довольно недавнее нововведение, которое появилось как часть HTML5.

Если, тем не менее, вы обслуживаете свою страницу как image / svg + xml или application / xhtml + xml или любой другой тип MIME, заставляет пользовательский агент использовать парсер XML, тогда требуются атрибуты xmlns . Это был единственный способ сделать что-то до недавнего времени, поэтому там было много контента.

128
ответ дан Robert Longson 21 August 2018 в 02:55
поделиться
  • 1
    "Все UA игнорируют атрибут версии, поэтому вы всегда можете отказаться от этого. & quot; - но что спецификация должна сказать об этом? «Браузеры позволят вам уйти с этим». (или в какой-то момент) относится ко многим практикам, которые (или были) однозначно неверны. – Mark Amery 27 December 2014 в 20:10
  • 2
    В IE11, если я помещаю <!DOCTYPE svg xmlns="www.w3.org/2000/svg">, это работает, но если я заберу xmlns или измените его на <!DOCTYPE svg xmlns="www.example.com">, это не сработает. Почему это? – Donald Duck 30 January 2015 в 13:05
  • 3
    Может быть, источник цитируется для этого ответа, пожалуйста? – jtheletter 21 May 2015 в 00:31
  • 4
    Я написал значительную часть SVG-кода в Firefox, и я так говорю. Разве это недостаточно хорошо? Если нет, я добавил несколько ссылок. – Robert Longson 21 May 2015 в 06:57
  • 5
    @SC_Chupacabra Да – Robert Longson 22 June 2015 в 20:43

Я хотел бы добавить к обоим ответам, но у меня нет точек, я добавляю новый ответ. В последних тестах в Chrome (версия 63.0.3239.132 (официальная сборка) (64-разрядная версия Windows)) я обнаружил, что:

  1. Для встроенного SVG, который непосредственно вводится в файл HTML, через текстовый редактор или javascript и elm.innerHTML, атрибуты xmlns не нужны, как указано в двух других ответах.
  2. Но для встроенного SVG, загружаемого через javascript и AJAX, существует два варианта: Используйте xhr.responseText и elm.innerHTML. Это не требует xmlns. Используйте xhr.responseXML.documentElement и elm.appendChild() или elm.insertBefore(). Этот метод создания встроенного SVG дает полубеленые результаты без определения основного пространства имен SVG, как в xmlns="http://www.w3.org/2000/svg". & Lt; svg & gt; загружает в HTML, но функции уровня документа, такие как getElementById(), не распознаются в & lt; svg & gt; элемент. Я предполагаю, что это потому, что он использует XMLHttpRequest XML-парсер за пределами HTML.
2
ответ дан jamess 21 August 2018 в 02:55
поделиться

Атрибут xmlns="http://www.w3.org/2000/svg":

  • Требуется для файлов image / svg + xml. 1
  • Дополнительно для встроенного <svg>. 2

Атрибут xmlns:xlink="http://www.w3.org/1999/xlink":

  • Требуется для файлов image / svg + xml с атрибутами xlink:. 1
  • Необязательно для inlined <svg> с атрибутами xlink:. 2

Атрибут version="1.1":

  • Рекомендуется соблюдать стандарты файлов image / svg + xml. 3
  • Видимо, игнорируется каждым пользовательским агентом. 4

1 Интернационализированные идентификаторы ресурсов (RFC3987) 2 Поскольку HTML5 3 Расширяемый язык разметки (XML) 1.0 ] 4 Вероятно, до выпуска более крупных версий.

141
ответ дан ncomputers 21 August 2018 в 02:55
поделиться
  • 1
    Очень четкая информация, хороший ответ. – Semicolon 18 January 2016 в 02:30
  • 2
    Нужно ли быть http или может быть https? – JohannesB 25 May 2017 в 19:27
  • 3
    @JohannesB оба протокола совместимы: D – ncomputers 25 May 2017 в 19:27
  • 4
    Ты уверен в этом? Этот пост Ника Кравера подразумевает что-то еще, поэтому я задал этот вопрос в первую очередь (потому что это показалось мне нелогичным). – JohannesB 26 May 2017 в 10:43
  • 5
    @JohannesB да вот у вас есть inlined пример HTTP HTTPS и файл image / svg + xml с inlined svg с атрибутами атрибутов xlink HTTP HTTPS – ncomputers 26 May 2017 в 15:11
Другие вопросы по тегам:

Похожие вопросы: