我在CMS中使用CKFinder 3.3,该CMS在主网站(/__admin
拥有自己的应用程序)的单独ASP .Net应用程序下运行。该网站是一个WebForms应用程序。
问题是CKFinder连接器指向/ckfinder/connector
而不是我设置的。显然我收到了IIS 404响应,因为此路径未配置为根应用程序中的任何内容。
的web.config
<appSettings>
<add key="ckfinderRoute" value="/connector" />
和ckeditor一样使用
CKEDITOR.replace('ctl00_cphMain_fvItem_tbContent_Input',
{
filebrowserBrowseUrl: '/__admin/CKFinderScripts/ckfinder.html?=635999758837233543',
filebrowserImageBrowseUrl: '/__admin/CKFinderScripts/ckfinder.html?type=Images&a=635999758837233543',
filebrowserUploadUrl: '/__admin/connector?command=QuickUpload&type=Files',
filebrowserImageUploadUrl: '/__admin/connector?command=QuickUpload&type=Images'
});
CKEDITOR.timestamp='635999758837233543';
在Visual Studio的主机(Ctrl + F5)下运行时,相同的设置正常工作。
值得一提的是,在MVC应用程序中,使用相同的设置,这是正常的。
CKFinder是通过web.config中自己的部分配置的,而不是通过OWIN Startup类从代码配置的。当我尝试( Map(route, connectorSetup)
)时,我得到了相同的结果。
作为临时修复,我在网站根目录中添加了以下重写规则。
<rule name="connector">
<match url="^ckfinder/connector"/>
<action type="Rewrite" url="/__admin/connector"/>
</rule>
编辑:
我改变了设置连接器的方式。我现在通过Startup类进行操作,这样我就可以控制ckfinderRoute的设置方式。它看起来像
public void Configuration(IAppBuilder builder)
{
LoggerManager.LoggerAdapterFactory = new NLogLoggerAdapterFactory();
RegisterFileSystems();
var route = ConfigurationManager.AppSettings["ckfinderRoute"];
builder.Map(route, SetupConnector);
}
SetupConnector方法正在从web.config加载设置并添加身份验证。我认为在这里显示代码无关紧要。
我也列出了相关的套餐
<package id="CKSource.CKFinder" version="3.3.0" targetFramework="net461" />
<package id="CKSource.CKFinder.Connector.Config" version="3.3.0" targetFramework="net461" />
<package id="CKSource.CKFinder.Connector.Core" version="3.3.0" targetFramework="net461" />
<package id="CKSource.CKFinder.Connector.Host.Owin" version="3.3.0" targetFramework="net461" />
<package id="CKSource.CKFinder.Connector.KeyValue.EntityFramework" version="3.3.0" targetFramework="net461" />
<package id="CKSource.CKFinder.Connector.Logs.NLog" version="3.3.0" targetFramework="net461" />
<package id="CKSource.FileSystem" version="1.0.0" targetFramework="net461" />
<package id="CKSource.FileSystem.Amazon" version="1.0.0" targetFramework="net461" />
<package id="CKSource.FileSystem.Local" version="1.0.0" targetFramework="net461" />
答案 0 :(得分:3)
您可以告诉javascript客户端在CKFinderScripts/config.js
文件中使用自定义连接器路径:
config.connectorPath = '/__admin/connector';
您可以在documentation。
中找到更多配置选项