2016-04-09 17 views
6

İşte sahip olduğum temel sorun. Sosyal paylaşım düğmelerini Aurelia uygulama sayfasına ayarlamak istiyorum.aurelia'da SEO öznitelikleri nasıl ayarlanır

head title 
[property="og:image"] 
[property="og:description"] 

Aurelia bu işlemek için en iyi yolu nedir: Genel olarak

, üç meta etiketleri nesneleri belirlemek zorunda? Rota nesnesini kullanarak bunu yapmak mümkün mü?

cevap

1

Sadece DOM API kullanarak baş içeriğini değiştiren bir hizmet yazarak bu konuyla uğraştım. Baş içeriğine bir görünüm olarak güzel bir şekilde bağlanmanın bir yolu yoktur. İşte

` içinde yer` sahip olağan niteliklerini benim uygulanması https://gist.github.com/dpix/6f508727b9d03d692d0659eb1776ad85

+0

Güzel bir yaklaşım, projemizde uyguladık.Ancak, Facebook'u çalıştırıyormuş gibi görünmüyor, bu yüzden sayfalarımız "og" "etiketleri" ayarlamıyor olsa bile, Facebook onları okumazdı. – powerbuoy

+0

Çoğu tarayıcı, ne yazık ki Bu, istemci taraf uygulamanızın sunucu web tarayıcılarında önceden oluşturulmasını gerektirir. – dpix

0

Rota üzerinde ayarlar özelliğini kullanarak baktınız mı? Bu, belirli bir rota için veri belirtebileceğiniz bir nesnedir, kişisel olarak Aurelia kullanılarak oluşturulan menüler için simgeleri belirtmek için kullanıyorum, ancak her şey için kullanılabilir. Eğer bu yöntem 3 parametre alır activate denilen bir geri arama yöntemi belirleyecek ViewModel

configureRouter(config, router) { 
    config.title = 'Test Route'; 

    config.map([ 
     { 
      route: ['', 'welcome'], 
      name: 'welcome', 
      moduleId: './welcome', 
      title: 'Welcome', 
      settings: { 
       image: '/images/someimage.png', 
       description: 'This is my social share description for this route.' 
      } 
     } 
    ]); 

    this.router = router; 
} 

datalar rota içinde itiraz erişmek için. Birincisi herhangi bir rota parametresidir ve ikincisi mevcut rota için rota nesnesinin kendisidir.

export class MyViewModel { 
    image = null; 
    description = null;  

    activate(params, routeMap) { 
     if (routeMap.settings) { 
      this.image = routeMap.settings.image; 
      this.description = routeMap.settings.description; 
     } 
    } 
} 

Şimdi View, HTML şablonu içinde, bunu yapabilirsiniz:

${image} ve ${description} Mevcut rotada doğrudan alınan sizin ViewModel içinde set yukarıdaki değerler alır.

+2

temel sorun, bir özü olduğunu. Bu beni kırdı :( –

İlgili konular