我正在使用AltoRouter
将我的网址路由到正确的文件。现在基本上在这里,我已经描述了我的问题。
在一页上,我包含一个警报,由引导程序设置样式。
它的定义很简单:
$('#wrongPasswordDiv').html('<br/><div class="alert alert-danger" id="wrongPWAlert" role="alert">Falsches Passwort. Bitte erneut versuchen!</div>');
此外,在此之前,包括引导 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
标头以使其正常工作?
在发送响应内容之前,您应该发送正确的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