0

使用 php 和 laravel 框架。我有一个删除请求以删除我网站上的文件条目,它在本地工作正常,但在我的网络服务器上却失败了。

// Ajax call 
$.ajax({
    url: BASE+'/contests/any/entries/any',
    type: 'DELETE',
    data: { 
        entry_id : entry_id 
    },
    success: function() {
        $(".entry-item#"+entry_id).remove();
    }     
});

我的路线:

Route::delete('contests/(:any)/entries/(:any)', 'entry@destroy');

控制器方法:

public function delete_destroy() {
    $entry = Entry::find(Input::get('entry_id'));
    Entry::find($entry->id)->delete();
    File::delete(URL::base() . 'public/uploads/' . $entry->filename);
}

当我检查 ajax 请求查看 chrome 开发人员工具中的网络选项卡时,我在此删除方法上找不到状态 404,而它在 wamp 本地工作正常。谁能告诉我这里出了什么问题以及这个 404 not found 到底是什么意思?

这里究竟找不到什么?

4

1 回答 1

1

实际上,404未找到意味着您的文件不存在,也可能是因为路径错误,我认为可能是因为您正在使用

File::delete(URL::base() . 'public/uploads/' . $entry->filename);

它最有可能返回类似

http://yourdomainpublic/uploads/filename

相反,您可以使用

File::delete(path('public').'uploads/' . $entry->filename);

哪个会输出这样的东西

http://yourdomain/public/uploads/filename
于 2013-05-28T00:58:38.400 回答