Yii2:为模块内的文件夹创建路径和 url
Yii2: Create path and url for folder inside a module
我有 Yii2 Advanced,我的文件夹结构是:
/frontend
- /controllers
- /models
- /modules
- - /work
- - - /controllers
- - - /models
- - - /PHOTOS
- - - /views
- /views
- /web
我将图像放在文件夹“/frontend/modules/work/photos”中。
我想知道如何定义一个代表该文件夹的路径和 url 的变量?
例如,这个:
Yii::$app->basePath . '/uploads/';
定义“/frontend/uploads”的路径。
Yii::$app->urlManager->baseUrl . '/uploads/';
将url定义为"frontend/web/uploads"。
如何在模块中创建与文件夹相同的内容?
"frontend/modules/work/photos" 和 "http:://.../frontend/work/photos"
关于文件路径:
在您的 common/config/bootstrap.php
文件中,
把这个:
Yii::setAlias('root', dirname(dirname(__DIR__));
-> path/to/your 项目
那你可以用Yii::getAlias('@root/uploads/')
关于urllink:
Url::home(true) . '/uploads/'
注意:配置域时,您已经指定了 path/to/frontend/web
。出于安全原因,您应该仅在此文件夹中找到您的静态文件(在本例中为照片)。我看到你输入 frontend/web/uploads
是正确的。
一个好的做法是为单独的上传文件夹创建一个单独的域 /path/to/yourapp/uploads/
。这样您的网站 api、后端应用程序就可以共享此上传文件夹。
您需要在配置文件夹中的别名中进行设置,例如:
Yii::setAlias('@upload_web', dirname(dirname(__DIR__)) . '/modules/work/PHOTOS');
之后您可以使用 uplod_web 检索它。
我有 Yii2 Advanced,我的文件夹结构是:
/frontend
- /controllers
- /models
- /modules
- - /work
- - - /controllers
- - - /models
- - - /PHOTOS
- - - /views
- /views
- /web
我将图像放在文件夹“/frontend/modules/work/photos”中。 我想知道如何定义一个代表该文件夹的路径和 url 的变量?
例如,这个:
Yii::$app->basePath . '/uploads/';
定义“/frontend/uploads”的路径。
Yii::$app->urlManager->baseUrl . '/uploads/';
将url定义为"frontend/web/uploads"。
如何在模块中创建与文件夹相同的内容? "frontend/modules/work/photos" 和 "http:://.../frontend/work/photos"
关于文件路径:
在您的 common/config/bootstrap.php
文件中,
把这个:
Yii::setAlias('root', dirname(dirname(__DIR__));
-> path/to/your 项目
那你可以用Yii::getAlias('@root/uploads/')
关于urllink:
Url::home(true) . '/uploads/'
注意:配置域时,您已经指定了 path/to/frontend/web
。出于安全原因,您应该仅在此文件夹中找到您的静态文件(在本例中为照片)。我看到你输入 frontend/web/uploads
是正确的。
一个好的做法是为单独的上传文件夹创建一个单独的域 /path/to/yourapp/uploads/
。这样您的网站 api、后端应用程序就可以共享此上传文件夹。
您需要在配置文件夹中的别名中进行设置,例如:
Yii::setAlias('@upload_web', dirname(dirname(__DIR__)) . '/modules/work/PHOTOS');
之后您可以使用 uplod_web 检索它。