当我使用传统的添加外部文件的方法时,遇到了一个问题,该问题是将外部文件添加到Nette中的模板。我要么将这些链接添加到了不正确的文件(模板不是应在其中添加的地方),要么使用的格式不正确。
我试图在模板(latte)内部实现CSS和js,效果很好。但是我需要在外部添加它们。
{block script}
<link rel="stylesheet" type="text/css" href="..\sass\components\file.scss">
<script src="..www\assets\js\file.js"></script>
{/block script}
答案 0 :(得分:0)
您应该了解,服务器文件系统上的路径与您将以模板发送给浏览器的URL无关,并且浏览器将用于后续的HTTP请求。
例如,在Nette应用程序的常见情况下,/
中的文件将在/path/to/your/project/directory/www
下进行搜索;诸如www
目录之外的所有文件系统路径甚至都没有对应的URL。
默认情况下,Latte不知道哪个文件与哪个URL匹配,因此它将src
和href
属性保持与编写时完全相同。这意味着您需要确保自己使用正确的URL。
为方便起见,Nette会自动在Latte模板中设置$basePath
变量:
{block script}
<link rel="stylesheet" type="text/x-scss" href="{$basePath}/sass/components/file.scss">
<script src="{$basePath}/assets/js/file.js"></script>
{/block script}
该变量将指向您应用程序的公共根目录(www/
目录),从而使URL的显示变得更加容易。
还要注意,您应该在URL中使用正斜杠,并且您可能希望链接到内置样式表而不是SASS组件。