静态文件
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/root 或 storage/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 将正确提供,并且可以被搜索引擎正确索引。
仅此而已!静态文件非常简单。你现在是静态文件的高手!
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
 
           Masonite 中文文档
 Masonite 中文文档 
         
             
             关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号