【问题标题】:AltoRouter send Mime TypeAltoRouter 发送 Mime 类型
【发布时间】:2019-01-01 14:41:53
【问题描述】:

我正在使用AltoRouter 将我的网址路由到正确的文件。现在基本上here,我已经描述了我的问题。

在一页上,我有一个警报,由引导程序设置样式。

定义就这么简单:

$('#wrongPasswordDiv').html('<br/><div class="alert alert-danger" id="wrongPWAlert" role="alert">Falsches Passwort. Bitte erneut versuchen!</div>');

此外,之前还包含 Bootstrap css 文件:

<link rel="stylesheet" type="text/css" href="/bootstrapcss" />

bootstrapcss 使用AltoRouter 和这行代码路由到正确的 css 文件:

$router->map('GET','/bootstrapcss','vendor/twbs/bootstrap/dist/css/bootstrap.css','bootstrapcss');

现在,在控制台中,它会抛出一个警告说Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/bootstrapcss"

如果我使用 css 文件的完整路径、CDN 或删除 DOCTYPE,它可以正常工作。但是我不想做这些变体中的任何一个...删除文档类型,可能会损坏其他功能,如果我要使用完整的 css 路径,那么我就不需要路由...

有什么想法可以发送Content-type: text/css 标头以使其正常工作吗?

【问题讨论】:

    标签: php html css url-routing altorouter


    【解决方案1】:

    您应该在发送响应内容之前发送正确的Content-Type。我不太了解 PHP,所以我可能不会以最好的方式阅读 CSS,但这是一个工作示例:

    使用这条路线:

    $router->map('GET','/bootstrapcss','example.css','bootstrapcss');
    

    然后在匹配时:

    $match = $router->match();
    
    if($match['name'] === 'bootstrapcss'){
        header("Content-Type: text/css");
        $fileName = $match['target'];
        echo file_get_contents($fileName);
        return;
    }
    

    关于上下文,我在这里有一个完整的例子:https://gist.github.com/kobi/09eaeeecb3406b193a84a674218798a9
    这是基于 AltoRouter 上的基本示例:https://github.com/dannyvankooten/AltoRouter/tree/master/examples/basic

    【讨论】:

    • @nameless - 没问题!我感觉很糟糕,因为昨天没有人回答你,所以我在我的 VM 上安装了 PHP :P。原来 AltoRouter 是一个小型路由器,它依赖于常规 PHP 来处理所有事情,所以它相对简单。
    猜你喜欢
    • 2011-05-30
    • 2017-12-07
    • 1970-01-01
    • 2013-08-29
    • 2011-03-29
    • 2011-10-10
    • 2014-07-29
    • 2012-08-11
    • 2018-06-01
    相关资源
    最近更新 更多