我正在尝试使用文化代码名称(“fr,lb,ru”)作为sitecore www.mydomain.com/ru中的子网站,网站工作正常但内容未显示
发出此消息
“当前项目没有”俄语:русский“中的版本。 要创建版本,请单击“添加新版本”或单击“版本”选项卡上的“添加”。“
我的网站配置
请帮助我使用“ru,fr,sa,lb”作为sitecore中的子网站名称。
感谢。
答案 0 :(得分:1)
如果您不希望Sitecore将URL的第一部分解释为语言代码,而是解析为内容树中的项目,则可以更改以下内容:
class Invoice(models.Model):
types = [
('customer', 'Customer'),
('supplier', 'Supplier')
]
number = models.CharField(max_length=30)
date_invoice = models.DateTimeField('Date', default=timezone.now())
comment = models.TextField(default=get_default_invoice_comment())
type = models.CharField(max_length=20, choices=types, default='customer')
partner_id = models.ForeignKey(
'Partner', default=1, on_delete=models.CASCADE)
currency_id = models.ForeignKey(
'Currency', default=1, on_delete=models.CASCADE)
@property
def tax_amount(self):
total = 0
for line in self.invoiceline_set.all():
total += line.tax_amount
return total
@property
def subtotal(self):
total = 0.0
for line in self.invoiceline_set.all():
total += line.subtotal
return total
@property
def total(self):
return self.subtotal + self.tax_amount
def __unicode__(self):
return self.number
这可以防止preprocessRequest管道中的StripLanguage处理器从路径中删除语言并重写URL。
您还应该更新LinkProvider的设置并设置<setting name="Languages.AlwaysStripLanguage" value="false" />
。
您可以在此博客文章中阅读更多详细信息: Prevent the Sitecore ASP.NET CMS from Interpreting URL Path Prefixes as Language Names
答案 1 :(得分:0)
我认为这里的问题是LanguageResolver管道处理程序期望URL的语言部分对应于完整的语言名称。所以在你的情况下,它会期望www.mydomain.com/ru-RU
。创建一个继承自Sitecore.Kernel.dll中的Sitecore的自定义LanguageResolver非常简单。
<processor type="Sitecore.Pipelines.HttpRequest.LanguageResolver, Sitecore.Kernel"/>
您需要修补以引用您的新课程。您的新课程将覆盖Process
方法。