2016-02-17 4 views
3

нужно добавить канонический тег в JSPкак генерировать канонический тег динамически в JSP

<link rel="canonical" url="http://www.example.com"/> 

Но я не хочу, чтобы жестко закодировать значение URL.

Как я могу достичь этого.

Я попытался с помощью данных методов, но в источнике зрения связывания, ссылка тег отображается как

<link rel="canonical" href="" data-bind="attr:{href: ko.toJS($root.seoURLCanonical)}"/> 

вместо

<link rel="canonical" url="http://www.example.com"/> 

при осмотре мы можем видеть каноническую ссылку бирку

<link rel="canonical" href="http://www.example.com" data-bind="attr:{href: ko.toJS($root.seoURLCanonical)}"/> 
+0

Вы используете AngularJS? –

+0

using knockout js –

+0

Вы можете заменить атрибут 'href' в' $ (document) .ready (...) ', например ... –

ответ

1

Вы можете установить id из html теги и прикрепить к ней ViewModel:

простой пример:

<html id="htmlTag"> 
<head> 
    <script src="<c:url value='/static/js/knockout-3.4.0.js' />"></script> 
    <script src="<c:url value='/static/js/jquery-1.10.2.js' />"></script> 

    <link rel="canonical" data-bind="attr:{url: seoURLCanonical}"/> 
</head> 
<body> 
<script type="text/javascript"> 
    $(function() { 
     var viewModel = { 
      seoURLCanonical: "http://www.example.com" 
     }; 

     ko.applyBindings(viewModel, document.getElementById("htmlTag")); 
    }); 
</script> 
</body> 
</html> 

в инспекторе DOM вы увидите:

enter image description here

+0

через привязку данных. Я могу привязывать каноническое значение. Но в исходном тексте он не будет отражать –

+0

В исходном коде вы его не увидите, потому что вы увидите, что вернул сервер. KnockoutJS работает на стороне клиента с теми элементами, которые были возвращены сервером ... Используйте DOM-инспектор. –

+0

все будет хорошо? если значение url не отображается в поле зрения источника –

Смежные вопросы