我的问题有点简单但是尽管尝试了不同的Yii2功能,我无法获得我想要安装的音频播放器组件的正确URL。
所以,要保持简短。 Yii2安装在localhost上,localhost / yii2app /是索引。这是基于yii2高级应用程序,结构如下:
-Yii2app -- frontend -- backend -- ... -- flashplayer
现在,当我在示例视图中时,我想显示播放器以播放deisred示例。网址的网址是:
http://localhost/yii2app/frontend/web/sample/1
我希望在这个视图中实现播放器:
<object type="application/x-shockwave-flash" value="<?= Url::to('/flashplayer/', true); ?>player.swf" width="200" height="20" id="dewplayer" name="dewplayer">
<param name="movie" value="<?= Url::home(false) . '/flashplayer/' ?>player.swf">
<param name="flashvars" value="mp3=test.mp3" />
<param name="wmode" value="transparent" />
</object>
正如你所看到的,我尝试了不同的方法,但到目前为止还没有成功。我正在关注网址:
/yii2app/frontend/web/flashplayer/player.swf
或
http://localhost/flashplayer/player.swf
显然,两者都不正确。网址我需要是:
/yii2app/flashplayer/player.swf
在网址中没有控制器路由的情况下,是否可以获得应用程序的主要路径?我不想包含webroot路径,而是包括服务器路径。此外,即使将应用程序移动到生产服务器,这也应该有效。
我会欣赏任何想法。
答案 0 :(得分:1)
您可以从yii2app / frontend / web /复制index.php,assest,css,favicon.ico和robots.txt,然后将它们粘贴到yii2app文件中,并将yii2app文件中的index.php替换为:
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/common/config/bootstrap.php');
require(__DIR__ . '/frontend/config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/common/config/main.php'),
require(__DIR__ . '/common/config/main-local.php'),
require(__DIR__ . '/frontend/config/main.php'),
require(__DIR__ . '/frontend/config/main-local.php')
);
$application = new yii\web\Application($config);
$application->run();
然后当你在localhost中打开yii2app时,你可以看到你的前端/网络 用这个网址:
localhost/yii2app