chu*_*uuk 1 css playframework playframework-2.0
我在Play Framework 2.0.3中使用CSS时遇到了一些问题,并且想知道是否有人能够发现我正在犯的错误.
我有一个名为siteview.scala.html的视图,定义为:
@(name: String, records: List[Record])
@import helper._
@main(name) {
<html>
<head>
<link rel="stylesheet" type="text/css" href="@routes.Assets.at("stylesheets/main.css")">
</head>
<h1>@name</h1>
<ul>
...
</ul>
</html>
}
Run Code Online (Sandbox Code Playgroud)
我定义的CSS文件main.less
中app/assets/stylesheets
,它看起来像:
h1 {color:#F6F9ED;}
@font-face {
font-family: Gentium;
src: url(fonts/GenBasR.ttf);
}
font-family: Gentium, Arial, Georgia;
Run Code Online (Sandbox Code Playgroud)
为可怕的风格道歉,我不断改变尝试让它做点什么!资产的路径已保留为默认值.
玩肯定编译CSS; 如果存在语法错误,则会发现它.但是,CSS没有被加载到HTML中.
我尝试将CSS文件直接复制到公共文件夹中,但这给了我一个来自编译器的重复文件错误,这可能表明文件正在放在正确的位置.
如何使用样式制作HTML显示?我有一种感觉,我错过了一些非常明显的东西,但对于网络开发我是一个新手,所以我完全没有想法.
我认为默认方法可能会混淆:开发人员和Play,所以我建议将文件夹重命名app/assets/stylesheets
为app/assets/less
(或者其他一些东西,一般来说确保你没有同名的文件夹/public
).多亏了这一点,您可以始终确保使用LESS或静态资产,因为您可以看到路径的差异:
<!-- resolves to '/public/less/main.css' or (main.min.css)
from app/assets/less folder -->
<link rel="stylesheet" type="text/css"
href='@routes.Assets.at("less/main.min.css")'>
<!-- resolves to '/public/stylesheets/main.css' from 'public/stylesheets' folder -->
<link rel="stylesheet" type="text/css"
href='@routes.Assets.at("stylesheets/main.css")'>
Run Code Online (Sandbox Code Playgroud)
路线保持不变:
GET /public/*file controllers.Assets.at(path="/public", file)
Run Code Online (Sandbox Code Playgroud)