我有一个.json要定义的文件.env。我怎么做 ?我的 json 文件在(laravel root folder)/json_google/api_key.json. 我试过了,GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION=/json_google/api_key.json但不起作用..
Laravel 有很多辅助函数来解析路径。例如 base_path() 在您的情况下。你会在这里找到所有的助手:vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
base_path(env('GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION');
Run Code Online (Sandbox Code Playgroud)
但是,我会设置完整路径而不是相对路径。否则,您的应用程序必须知道它相对于(laravel 根目录或应用程序路径,...)应该是什么并考虑到这一点,这会违背将文件位置放在代码库之外的目的,因为它使更难将它移动到其他地方。
由于 .env 文件是每个部署的,因此设置完整路径没有问题。
您应该使用常量文件使用 .env 变量。
.env file
GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION=/json_google/api_key.json
Run Code Online (Sandbox Code Playgroud)
现在在 config/constatns.php 设置
return [
'STORAGE_GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION' => env("GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION", ""),
];
Run Code Online (Sandbox Code Playgroud)
获取json文件路径
Config::get('constants.STORAGE_GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION')
Run Code Online (Sandbox Code Playgroud)