使用Bower与Play

Ben*_*nIO 7 scala heroku playframework bower

这是我的文件结构在Play中的样子:

- public
  - bower_components
  - images
  - stylesheets
Run Code Online (Sandbox Code Playgroud)

这是我的<head>:

<head>
    <title>@title</title>
    <link rel="shortcut icon" href='@routes.Assets.at("images/favicon.png")'>
    <link rel="stylesheet" media="screen" href='@routes.Assets.at("bower_components/bootstrap/dist/css/bootstrap.min.css")'>
    <link rel="stylesheet" media="screen" href='@routes.Assets.at("stylesheets/main.css")'>
    <script src='@routes.Assets.at("bower_components/jquery/dist/jquery.min.js")'></script>
    <script src='@routes.Assets.at("bower_components/bootstrap/dist/js/bootstrap.min.js")'></script>
</head>
Run Code Online (Sandbox Code Playgroud)

路线:

GET     /                           controllers.Application.index

GET     /public                     controllers.Application.public

GET     /assets/*file               controllers.Assets.at(path="/public", file)
Run Code Online (Sandbox Code Playgroud)

它适用于开发我有200多岁.当我部署到Heroku时,除了样式表和图像目录之外,我为所有的bower组件获得404s.

我假设可能是因为Play无法识别bower组件目录.有谁知道如何为资产添加一个新的目录来构建?

Ben*_*nIO 5

在玩游戏时使用 bower 时,请注意您将使用的资产存储在/dist文件夹中。现在,您可能认为这没什么大不了的,但是如果您检查默认.gitignore文件,您会发现在一行中有以下四个字符:

dist
Run Code Online (Sandbox Code Playgroud)

这足以忽略dist应用程序中的所有s。只需删除该行,运行 git status,您就会发现您将有一些新文件要添加到您的存储库中。

提交并推送到 Heroku。你现在应该可以走了。

  • 在部署时在服务器上运行 bower,而不是版本控制 `dist` 文件夹不是更好吗? (4认同)