静态文件

未匹配的标注

Masonite 试图让静态文件变得非常简单,并提供开箱即用的 Whitenoise。 Whitenoise 封装了 WSGI 应用程序并监听某些 URI 请求,这些请求可以在你的配置文件中注册并为这些资产提供服务。

配置

所有有关于静态文件的配置都可以在 config/filesystem.py 中找到。在这个文件中,你会找到一个名为 STATICFILES 的常量文件,它只是一个目录字典作为键和别名作为值。

作为键包含的目录只是静态文件位置的位置,作为从应用程序的基础开始的相对路径。例如,如果你的 css 文件位于 storage/assets/css 中,则将该文件夹位置作为键。对于该值,请在你将要在模板中使用别名进行替换。对于这个例子,我们将使用 css/ 作为别名。

对于此设置,我们的 STATICFILES 常量应如下所示:

config/storage.py

STATICFILES = {
    'storage/assets/css': 'assets/',
}

现在在模板中我们可以使用:

<img src="/assets/style.css">

Which will get the storage/assets/css/style.css file.

静态模板函数

所有模板都有一个静态函数,可用于帮助获取静态文件的位置。你可以使用驱动程序名称或点表示法指定所需的驱动程序和位置。

以此为例:

config/filesystem.py

....
's3': {
  's3_client': 'sIS8shn...'
  ...
  'path': 'https://s3.us-east-2.amazonaws.com/bucket'
  },
....
...
<img src="{{ asset('s3', 'profile.jpg') }}" alt="profile" />
...

这将渲染出如下效果:

<img
  src="https://s3.us-east-2.amazonaws.com/bucket/profile.jpg"
  alt="profile"
/>

你还可以将配置位置设为字典并使用点表示法:

config/storage.py

....
's3': {
  's3_client': 'sIS8shn...'
  ...
  'path': {
    'east': 'https://s3.us-east-2.amazonaws.com/east-bucket',
    'west': 'https://s3.us-west-16.amazonaws.com/west-bucket'
  },
....

并像这样使用点符号:

...
<img src="{{ asset('s3.east', 'profile.jpg') }}" alt="profile" />
...
<img src="{{ asset('s3.west', 'profile.jpg') }}" alt="profile" />
...

服务「根」文件

有时你可能需要提供通常位于应用程序根目录中的文件,例如「robots.txt」或「manifest.json」。这些文件可以在 config/filesystem.py 中的 STATICFILES 目录中使用别名。它们不必位于项目的根目录中,而是可以位于 storage/rootstorage/public 目录中,并以简单的 / 作为为别名。

例如,基本设置会将其作为你的目录:

resources/
routes/
storage/
  static/
  root/
    robots.txt
    manifest.json

你可以在你的 STATICFILES 常量中使用它的别名:

config/storage.py

STATICFILES = {
    # folder          # template alias
    'storage/static': 'static/',
    ...
    'storage/public': '/'
}

你现在可以访问 localhost:8000/robots.txt,并且你的 robots.txt 将正确提供,并且可以被搜索引擎正确索引。

仅此而已!静态文件非常简单。你现在是静态文件的高手!

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/masonite/4.0/fe...

译文地址:https://learnku.com/docs/masonite/4.0/fe...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 查看所有版本


暂无话题~