当我将php文件部署到GAE时,file_exists
功能不起作用。如果我使用Google App Engine Launcher从我的计算机本地测试完全相同的代码,它可以正常工作。这是PHP和app.yaml文件
<?php
DEFINE("TESTFILE", 'testfile.txt');
echo TESTFILE.'<br>';
$doesTheFileExist = file_exists(TESTFILE);
echo '$doesTheFileExist: ' . $doesTheFileExist. '<br>';
if (!file_exists(TESTFILE)) {
echo 'I guess it doesnt exist';
}
RETURN;
application: application-name
version: 1
runtime: php55
api_version: 1
threadsafe: true
handlers:
- url: /favicon.ico
static_files: favicon.ico
upload: favicon.ico
- url: /google-api-php-client
script: google-api-php-client
- url: /testfile.txt
static_files: testfile.txt
upload: testfile.txt
- url: /
script: indexTest.php
为什么在本地测试时会有效,在部署后,它不起作用?
我尝试更改文件的位置并更改 app.yaml 文件,并添加以下内容:
- url: /templates
static_dir: templates
将文件放在模板目录中。但同样,它适用于本地主机,但未部署到App Engine。
答案 0 :(得分:3)
如果您希望能够从应用中读取静态资源,则需要在处理程序上设置application_readable
标记。
当然,如果您实际上并不希望能够将该文件作为静态资源提供,但只是希望能够将其读取,那么请不要将其包含在您的app.yaml文件中它将被上传并可从您的应用访问。
请参阅文档here。