Я использую SilverStripe в качестве CMS (http://www.silverstripe.com/services/why-choose-us/open-source-cms/) вместо Joomla или Drupal, и по большей части это отличный опыт. уже. Однако эта проблема настолько странная, что я даже не уверен, имеет ли к ней какое-либо отношение SilverStripe. По сути, ссылки на CSS-файлы, установленные в шаблоне, теряют начальную косую черту при выводе разметки в браузер. Очевидно, что это может быть очень проблематично.
Это головной раздел в соответствующем шаблоне:
<!DOCTYPE html>
<html>
<head>
<% base_tag %>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=720, maximum-scale=1.0" />
<title>$Title</title>
<link rel="stylesheet" type="text/css"
href="/framework/admin/thirdparty/jquery-notice/jquery.notice.css?m=1342411326" />
</head>
Ссылки на самом деле генерируются в шаблоне динамически, но я поместил эту ссылку в себя, чтобы изолировать проблему. Даже вручную добавленная в шаблон разметка ссылки будет иметь вид href="framework/admin/ ThirdParty/jquery-notice/jquery.notice.css?m=1342411326", исходная ссылка без косой черты в начале, /. Кто-нибудь знает, как это может произойти? Неважно, нахожусь ли я в Chrome, Safari или Firefox, все они ведут себя одинаково.
Я заметил, что могу «исправить» проблему, разбив весь документ. Если я добавлю символ перед <!DOCTYPE html>
, href в ссылке css снова укажет на корень с косой чертой в начале. Это из-за типа документа, базового тега или какой-то странной комбинации этих двух факторов?
Одна из странных проблем, с которыми я столкнулся...
Requirements::themedCSS()
? Или использовать специальные теги шаблонаthemedCSS()
? Проверьте вызов<% base_tag %>
, который у вас есть в шаблоне. Этот тег SS выведет что-то вроде<base href="http://example.com/" />
. Насколько я знаю, это необходимое требование для SilverStripe, и его нельзя удалить без неожиданного поведения. - person Benjamin Smith   schedule 01.08.2012<base href="http://www.brooksransom.com/"><!--[if lte IE 6]></base><![endif]-->
. Мой локальный сайт разработки выводит ту же структуру для базы, но она работает. И что касается вашего вопроса, SS CMS вводит JS и CSS в LeftAndMain::init() с помощью этого вызова:Requirements::css(FRAMEWORK_ADMIN_DIR . '/thirdparty/jquery-notice/jquery.notice.css');
для каждого из файлов. - person mycrazydream   schedule 02.08.2012<BASE>
. Кроме того, ссылки не должны начинаться с/
— об этом позаботится тег<BASE>
. Все URL-адреса, сгенерированные SilverStrip, являются относительными. - person Benjamin Smith   schedule 07.08.2012