应用程序在视图中生成断开的链接(无故停止工作)

Posted

技术标签:

【中文标题】应用程序在视图中生成断开的链接(无故停止工作)【英文标题】:Application is generating broken links within the view (stopped working for no reason) 【发布时间】:2019-05-15 21:51:41 【问题描述】:

我完整的 Lumen 应用程序在生产系统中没有出现问题一年后突然停止工作(几乎任何页面上都有例外)。由于我没有更改任何代码(至少不是有意识地),我想这可能是托管环境中背景更改的问题。

一切都始于 NotFoundHttpException:

(1/1) NotFoundHttpException
in RoutesRequests.php (line 226)
at Application->handleDispatcherResponse(array(0))
in RoutesRequests.php (line 164)
at Application->Laravel\Lumen\Concerns\closure()
in RoutesRequests.php (line 413)
at Application->sendThroughPipeline(array(), object(Closure))
in RoutesRequests.php (line 166)
at Application->dispatch(null)
in RoutesRequests.php (line 107)
at Application->run()
in index.php (line 32)

经过一番研究,我在 SO:NotFoundHttpException with Lumen

上找到了解决方案

看起来问题可以通过put来解决:

$app->run(
    $app->make('request')
);

进入 index.php。

但是现在我在视图中的所有链接都已损坏 - 示例:

<link rel="icon" type="image/png" sizes="96x96" href="https://:/images/app/favicon-96x96.png">
<link rel="stylesheet" href="https://:/css/base.css">

url在Lumen/src/helpers.php中生成:

/**
 * Generate a url for the application.
 *
 * @param  string  $path
 * @param  mixed   $parameters
 * @param  bool    $secure
 * @return string
 */
function url($path = null, $parameters = [], $secure = null)

    return app('url')->to($path, $parameters, $secure);

似乎所有参数都正确传递:例如 $path 为 /images/app/apple-icon-57x57.png 而其他参数为空/null。

更新:搜索了一段时间后,我发现:

命名空间 Symfony\Component\HttpFoundation;

class Request

// ...

    /**
     * Gets the scheme and HTTP host.
     *
     * If the URL was called with basic authentication, the user
     * and the password are not added to the generated string.
     *
     * @return string The scheme and HTTP host
     */
    public function getSchemeAndHttpHost()
    
        return $this->getScheme().'://'.$this->getHttpHost();
    

// ...

... 正在提供错误的方案(没有 SSL)和空主机。但我仍然不知道为什么会这样。

搜索了一段时间后,我仍然不知道这可能来自哪里。有没有人遇到过类似的问题或者可以帮助我解决这个问题?

【问题讨论】:

检查您的.env 文件的APP_URL 设置。 没有设置但是设置它不会改变任何东西:-/ 您能否向我们展示您输出&lt;link rel="stylesheet" href="https://:/css/base.css"&gt; html 的 Blade 代码? @ceejayoz 我不使用刀片。这就是我的输出方式:&lt;?php echo url('/images/app/ms-icon-144x144.png'); ?&gt; @ceejayoz Lumen 似乎没有 APP_URL 设置 (github.com/laravel/lumen-framework/issues/595)。 【参考方案1】:

从 Lumen 5.5 更新到 Lumen 5.7 并将 PHP 从 7.0 更新到 7.2.9 后问题部分消失了。我仍然必须删除:

    $app->make('request')

NotFoundHttpException with Lumen 的解决方案在我的情况下不起作用,仍然存在一些例外情况。仍然非常欢迎更好的解决方案或解释!

【讨论】:

以上是关于应用程序在视图中生成断开的链接(无故停止工作)的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js JavaScript 不和谐客户端无缘无故断开和重新连接

QWidget paintEvent 无故停止调用

请教html5的websocket无缘无故客户端主动断开原因

springboot应用无故停止运行killed解决方法

关于远程连接 连接不了 远程桌面链接 已停止工作

Cordova iOs 在视图转换时在 SAPUI5 应用程序中无故显示键盘