无法使 Piranha CMS 管理器编辑页面正常工作
Posted
技术标签:
【中文标题】无法使 Piranha CMS 管理器编辑页面正常工作【英文标题】:Unable to get the Piranha CMS manager edit page to work 【发布时间】:2021-09-26 05:46:22 【问题描述】:我正在努力向现有网站添加博客功能,并认为 Piranha 可能是要走的路。我添加了以下内容:
csproj
<ItemGroup>
<PackageReference Include="Piranha" Version="9.1.0" />
<PackageReference Include="Piranha.AttributeBuilder" Version="9.1.0" />
<PackageReference Include="Piranha.Data.EF.SQLServer" Version="9.1.0" />
<PackageReference Include="Piranha.Data.EF.SQLite" Version="9.1.0" />
<PackageReference Include="Piranha.ImageSharp" Version="9.1.0" />
<PackageReference Include="Piranha.Local.FileStorage" Version="9.1.0" />
<PackageReference Include="Piranha.AspNetCore" Version="9.1.0" />
<PackageReference Include="Piranha.AspNetCore.Identity.SQLServer" Version="9.1.0" />
<PackageReference Include="Piranha.AspNetCore.Identity.SQLite" Version="9.1.0" />
<PackageReference Include="Piranha.Manager" Version="9.1.0" />
<PackageReference Include="Piranha.Manager.TinyMCE" Version="9.1.0" />
</ItemGroup>
Startup.cs
services.AddPiranha(options =>
options.AddRazorRuntimeCompilation = true;
options.UseFileStorage(naming: Piranha.Local.FileStorageNaming.UniqueFolderNames);
options.UseImageSharp();
options.UseManager();
options.UseTinyMCE();
options.UseMemoryCache();
options.UseEF<SQLiteDb>(db =>
db.UseSqlite("Filename=./piranha.mvcweb.db"));
options.UseIdentityWithSeed<IdentitySQLiteDb>(db =>
db.UseSqlite("Filename=./piranha.mvcweb.db"));
);
...
App.Init(api);
App.CacheLevel = Piranha.Cache.CacheLevel.Full;
new ContentTypeBuilder(api)
.AddAssembly(typeof(Startup).Assembly)
.Build()
.DeleteOrphans();
Seed.RunAsync(api).GetAwaiter().GetResult();
Piranha.Manager.Editor.EditorConfig.FromFile("editorconfig.json");
app.UsePiranha(options =>
options.UseManager();
options.UseTinyMCE();
options.UseIdentity();
);
我还从示例 MVC 应用程序项目中复制了所有视图、模型、配置文件、控制器和静态资产并将它们包含在内。
当我运行程序时,它会加载示例主页,当我转到 /manager 时,它允许我使用默认凭据登录。我可以看到创建了默认页面。但是,当我尝试编辑页面时,设计器永远不会加载。相反,当我在 chrome 中检查页面时,我收到一条错误消息:
"TypeError: Cannot read property 'filename' of undefined"
我附上了一个屏幕截图,显示了加载到该点的内容以及发生错误的位置。任何帮助解决此问题的根源将不胜感激。
【问题讨论】:
【参考方案1】:filename
属性很可能是测试页上图像块或其他媒体引用的一部分。我的猜测是,当您复制数据并且页面上的引用已损坏时,媒体资产尚未正确创建。
尝试创建一个新页面,看看编辑器是否正常加载,然后删除测试页面并创建您自己的内容。
【讨论】:
感谢 Hakan 我能够解决这个问题,请参阅上面的答案。希望它可以在未来对其他人有所帮助【参考方案2】:我能够通过删除在services.AddPiranha()
之后的启动中对services.AddMvc()
的调用来解决此问题。看起来 AddPiranha
为您执行此操作,而输入 AddMvc
会导致事情变得一团糟。
【讨论】:
以上是关于无法使 Piranha CMS 管理器编辑页面正常工作的主要内容,如果未能解决你的问题,请参考以下文章