【问题标题】:Laravel cannot find file in directory?Laravel 在目录中找不到文件?
【发布时间】:2015-02-19 02:55:49
【问题描述】:

http://angulairapi.rohanchhabra.in/airports

这是我在 Laravel 中创建的一个非常简单的路由。它只是在公共目录中获取一个 json 文件,将其解码为一个数组并返回相同的 json 作为响应。

如果你走这条路线(上面提到的),错误说“没有这样的文件或目录”,但它实际上存在。它在我的本地机器上运行良好。但是当我在我的服务器上推送同样的东西时,它给了我这个错误。

http://gitlab.learningtechasia.com:8901/rohan0793/angulairapi.git

我已将存储库公开,以便每个人都可以查看。

【问题讨论】:

  • .htaccess 文件是否存在于您的公共目录中(在服务器上)?
  • 我得看看,但它必须,因为我刚刚做了一个存储库的 git 克隆。
  • 好的。如果您正在使用它,还请检查 .htaccess 是否已启用
  • .htaccess 是否启用?
  • 是的 .htaccess 需要启用This should help 您还可以检查/index.php/airports 是否有效。如果是,您的 .htaccess 中的某些内容不起作用

标签: php json laravel laravel-4


【解决方案1】:

asset() 和 Anands 答案的替代方法是辅助函数 public_path()。它从系统的角度返回绝对文件路径,而不是 URL。

$airports = json_decode(file_get_contents(public_path().DIRECTORY_SEPARATOR."airports.json")));

asset() 应该用于文件的 URL。您发送给客户端的 URL。您应该使用 public_path() 处理内部事务,例如获取文件的内容。

【讨论】:

    【解决方案2】:

    我在我的机器上测试过,asset() 对我有用,你写的路径(public/airports.json) 对我来说反映了同样的错误。

    Laravel 的 Helper 函数asset("file_name") 生成一个资源的 URL。

    请查看 laravel 的 helper 函数文档了解更多详情

    将此代码放入您的 routes.php 并重试

    <?php
    
    Route::get('/airports', function(){
        $airports = json_decode(file_get_contents(asset("airports.json")));
        return Response::json($airports);
    });
    
    Route::get('/flights', function(){
        $airports = json_decode(file_get_contents(asset("flights.json")));
        return Response::json($airports);
    });
    

    编辑

    当您在本地机器上工作时,您的 url 包含单词 public,即 localhost/project-name/public/airports.json。

    但是当你在服务器上部署项目时,它似乎从 url 中删除了公共单词,所以这里发生了什么,服务器在位置 http://angulairapi.rohanchhabra.in/public/airports.json 找到 airports.json 但它实际上不在位置 http://angulairapi.rohanchhabra.in/airports.json,所以建议使用 laravel 函数(在本例中为 assets())生成 url/assets 链接。

    【讨论】:

    • 抱歉回复晚了。现在就像一个魅力!谢谢。
    • 它在我的服务器上工作正常,但由于某种原因停止在我的本地机器上工作。有什么想法吗?
    • 没什么。它只是不会再加载了。它一直在等待 localhost
    • 嗯,对我来说它在本地主机上的工作方式相同,您使用的是 windows 吗?
    • 在 Windows 和 Ubuntu 上都试过了! :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    相关资源
    最近更新 更多