非服务器root时加载本地js文件

时间:2016-12-05 21:18:15

标签: javascript html css

所以我的项目使用Wildfly 10服务器托管在localhost:8080 / web。当我加载main.css文件时,我使用标记:

<link href="resources/scripts/css/main.css" type="text/css">

它没有加载(404)。我加载了script.js文件:

<script src="resources/scripts/js/script.js"></script>

但是,script.js文件未加载(404)。有没有办法在不指定项目路径的情况下加载script.js文件?

相关文件夹结构如下:

resources
    scripts
        css
            main.css
        js
            script.js
    static
        views
            index.html

3 个答案:

答案 0 :(得分:1)

要始终从一致的位置加载脚本,您可以在href和脚本标记中使用绝对路径,方法是在前面添加“/”。目前,您的脚本和CSS正在尝试从localhost:8080/web/resources/scripts/css/main.css localhost:8080/resources/scripts/css/main.css 'resources/scripts/css/main.css'加载'/resources/scripts/css/main.css'

[Files]更改为[Files] Source: "{code:GetLicensePath}"; DestDir: "{app}"; Flags: external [Code] var LicenseFilePage: TInputFileWizardPage; procedure InitializeWizard(); begin LicenseFilePage := CreateInputFilePage( wpSelectDir, 'Select License File Location', 'Where is your license file located?', 'Select where License file is located, then click Next.'); LicenseFilePage.Add( 'Location of license file:', 'License files|*.lic|All files|*.*', '.lic'); end; function GetLicensePath(Param: string): string; begin Result := LicenseFilePage.Values[0]; end;

答案 1 :(得分:0)

构建java war文件的正确方法是确保您的前端始终知道它可以在不同的上下文路径下运行。同一项目应该以http://127.0.0.1/http://127.0.0.1/myproject/运行,具体取决于它的部署方式。

不幸的是,使用HTML文件没有超级简单的方法。

如果您将html转换为jsp,则可以使用以下内容:

<script type="text/javascript" src="<%=request.getContextPath()%>/resources/scripts/js/script.js"></script>

或者对于JSF2:

<script type="text/javascript" src="#{request.contextPath}/resources/scripts/js/script.js"></script>

答案 2 :(得分:-1)

刚将其移至服务器根目录以解决问题