Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii2创建根目录中文件夹的url_Php_Yii2 - Fatal编程技术网

Php Yii2创建根目录中文件夹的url

Php Yii2创建根目录中文件夹的url,php,yii2,Php,Yii2,我的问题有点简单,但尽管尝试了不同的Yii2功能,我还是无法获得要安装的音频播放器组件的正确URL 所以,保持简短。Yii2安装在localhost上,localhost/yii2app/是索引。这是基于yii2高级应用的,结构如下: -Yii2app -- frontend -- backend -- ... -- flashplayer 正如你所看到的,我尝试了不同的方法,但到目前为止没有成功。我得到以下网址: /yii2app/frontend/web/flashplayer/player

我的问题有点简单,但尽管尝试了不同的Yii2功能,我还是无法获得要安装的音频播放器组件的正确URL

所以,保持简短。Yii2安装在localhost上,localhost/yii2app/是索引。这是基于yii2高级应用的,结构如下:

-Yii2app -- frontend -- backend -- ... -- flashplayer 正如你所看到的,我尝试了不同的方法,但到目前为止没有成功。我得到以下网址:

/yii2app/frontend/web/flashplayer/player.swf

http://localhost/flashplayer/player.swf

显然,这两种观点都是错误的。我需要的URL是:

/yii2app/flashplayer/player.swf

在url中是否可以只获取应用程序的主路径而不使用控制器的路由?我不想包括webroot路径,而是服务器路径。此外,即使将应用程序移动到生产服务器上,这也应该有效


我会感激你的任何想法

您可以从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();

为什么不使用相对路径,例如
。/../../../flashplayer/player.swf
?我觉得很奇怪,
yii2app
-文件夹将是配置的web服务器索引,而这通常应该是
前端/web
目录。@Blizz哦,你是对的,我正在使用前端模块,我可以将播放器源代码放在其中。那么联系起来就不难了。但是我想让它放在一个可以被不同模块访问的地方,因为我想避免代码重复。常见文件夹的工作原理是:DocumentRoot指向顶级文件夹中的一个web文件夹,通常是前端,而不是通过web服务器提供所有源代码。这是一个等待发生的黑客行为。
<?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