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 检索它。