我正在尝试将vue.js应用程序集成到typo3页面中。
我有一个功能齐全的TYPO3实例,可以在其中创建自己的页面,编辑内容等等。现在,我想在此页面中添加现有的vue.js应用程序。
因此,我创建了一个扩展,其中添加了所有必需的资源(js,css),并添加了自己的内容类型来控制集成和配置。内容类型输出vue.js入口点。到目前为止,一切正常。较小的vue.js应用程序可以正常工作。
现在面临的挑战是:当我想创建一个依赖路由器功能的更复杂的应用程序时,我遇到了一个问题。
假设,我将我的应用程序集成到页面中,/shop
并且我的应用程序尝试在下呈现产品/shop/product/some-id
。这是行不通的。URL处理由TYPO3(按设计)完成。
我想在文档中找到解决方案,但不确定应该搜索什么。/shop
无论以下路径如何,我都需要一种输出相同页面()的方法。有人有提示吗?
我找到了解决方案。在TYPO3 v8中,可以为此目的使用realurl扩展名。
可以定义自己的解码预处理功能并分析当前url。
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['decodeSpURL_preProc'][] = RealUrlManipulation::class . '->decodeSpURL_preProc';
在此方法中,可以更改TYPO3内部处理的URL,并将其设置为已知的URL。